UNPKG

pimatic

Version:

A home automation server and framework for the Raspberry PI running on node.js

127 lines (108 loc) 3.98 kB
// Unit tests. Run with mocha. /*global describe:true it:true */ var should = require('should') , schemaValidator = require('../lib/suites/draft-04') , core = require('../lib/suites/draft-04/core.js') ; describe('Core § 3.6 JSON value equality:', function() { describe('null:', function() { it('should be equal', function() { core.jsonEqual(null, null).should.be.true; }); it('should not be equal', function() { core.jsonEqual(null, undefined).should.be.false; core.jsonEqual(null, {}).should.be.false; core.jsonEqual(null, 0).should.be.false; core.jsonEqual(null, false).should.be.false; core.jsonEqual(null, '').should.be.false; }); }); describe('boolean:', function() { it('should be equal', function() { core.jsonEqual(true, true).should.be.true; core.jsonEqual(false, false).should.be.true; }); it('should not be equal', function() { core.jsonEqual(true, false).should.be.false; core.jsonEqual(false, true).should.be.false; core.jsonEqual(true, {}).should.be.false; core.jsonEqual(true, 0).should.be.false; core.jsonEqual(true, '').should.be.false; }); }); describe('string:', function() { it('should be equal', function() { core.jsonEqual('hello', 'hello').should.be.true; }); it('should not be equal', function() { core.jsonEqual('hello', 'goodbye').should.be.false; core.jsonEqual('hello', {}).should.be.false; core.jsonEqual('hello', 0).should.be.false; core.jsonEqual('hello', '').should.be.false; core.jsonEqual('0', 0).should.be.false; }); }); describe('number:', function() { it('should be equal', function() { core.jsonEqual(17, 17).should.be.true; core.jsonEqual(17, 17.0).should.be.true; core.jsonEqual(3.14195, 3.14195).should.be.true; core.jsonEqual(1/3, 1/3).should.be.true; }); it('should not be equal', function() { core.jsonEqual(7, '7').should.be.false; core.jsonEqual(0, false).should.be.false; core.jsonEqual(42.1, 42.2).should.be.false; core.jsonEqual(42.1, 42).should.be.false; }); }); describe('array:', function() { it('should be equal', function() { core.jsonEqual([], []).should.be.true; core.jsonEqual(['a', 'b', 'c'], ['a', 'b', 'c']) .should.be.true; core.jsonEqual( ['a', 'b', {foo: 'bar', baz: 42}], ['a', 'b', {baz: 42, foo: 'bar'}] ).should.be.true; }); it('should not be equal', function() { core.jsonEqual(['a', 'b', 'c'], ['a', 'c', 'b']) .should.not.be.true; core.jsonEqual(['a', 'b', 'c'], ['a', 'b']) .should.not.be.true; core.jsonEqual(['a', 'b'], ['a', 'b', 'c']) .should.not.be.true; core.jsonEqual( ['a', 'b', {foo: 'bar', baz: 42}], ['a', 'b', {baz: 42, foo: 'bar', x:10}] ).should.not.be.true; core.jsonEqual(['a', 'b'], {}).should.not.be.true; }); }); describe('object:', function() { it('should be equal', function() { core.jsonEqual({}, {}).should.be.true; core.jsonEqual({foo: 'bar', baz: 42}, {foo: 'bar', baz: 42}) .should.be.true; core.jsonEqual({foo: 'bar', baz: 42}, {baz: 42, foo: 'bar'}) .should.be.true; core.jsonEqual( {id: 1, posts: [37, 42], user: {name: 'Fred', friends: 55}}, {user: {friends: 55, name: 'Fred'}, posts: [37, 42], id: 1} ).should.be.true; }); it('should not be equal', function() { core.jsonEqual({}, {age: 42}).should.not.be.true; core.jsonEqual({}, null).should.not.be.true; core.jsonEqual( {foo: 'bar', baz: 42}, {foo: 'bar', baz: 42, qux: 37} ).should.not.be.true; core.jsonEqual( {id: 1, posts: [37, 42], user: {name: 'Fred', friends: 55}}, {user: {friends: 55, name: 'Fred'}, posts: [37, 42], id: 2} ).should.not.be.true; }); }); });