Liliana797979

02.Repository - exam js advanced

Mar 17th, 2022
1,209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. describe("Repository", function () {
  4.     describe("constructor", function () {
  5.         it("Should set initialize with valid data", function () {
  6.             let props = { name: 'string', age: 'number'};
  7.             let rep = new Repository(props);
  8.             expect(rep.props).to.eql(props);
  9.             expect(rep.data.size).to.equal(0);
  10.             expect(rep.nextId()).to.equal(0);
  11.  
  12.             expect(rep instanceof Repository);
  13.         });
  14.     });
  15.  
  16.     describe("count", function () {
  17.         it("Should reflect correct count", function () {
  18.             let props = { name: 'string', age: 'number'};
  19.             let rep = new Repository(props);
  20.             let obj1 = { name: 'ivan', age: 20};
  21.  
  22.             expect(rep.count).to.equal(0);
  23.             rep.add(obj1);
  24.             expect(rep.count).to.equal(1);
  25.             rep.update(0, obj1);
  26.             expect(rep.count).to.equal(1);
  27.             rep.del(0);
  28.             expect(rep.count).to.equal(0);
  29.         });
  30.     });
  31.  
  32.     describe("add", function () {
  33.         it("Should reflect add entity correctly", function () {
  34.             let props = { name: 'string', age: 'number'};
  35.             let rep = new Repository(props);
  36.             let obj1 = { name: 'ivan', age: 20};
  37.             let obj2 = { name: 'ivan2', age: 22};
  38.             let id = rep.add(obj1);
  39.             expect(id).to.equal(0);
  40.             let id2 = rep.add(obj2);
  41.             expect(id2).to.equal(1);
  42.  
  43.             let actual = rep.data.get(id2);
  44.             expect(actual).to.eql(obj2);
  45.         });
  46.  
  47.         it("Should throw when props are not matched", function () {
  48.             let props = { name: 'string', age: 'number'};
  49.             let rep = new Repository(props);
  50.             let obj1 = { name: 'ivan'};
  51.             let obj2 = { name: 'ivan2', age: true, };
  52.             let obj3 = { name: 'ivan3', age: 22, hobby: true };
  53.             expect(()=> rep.add(obj1)).to.throw(Error, `Property age is missing from the entity!`);
  54.             expect(()=> rep.add(obj2)).to.throw(TypeError, `Property age is not of correct type!`);
  55.             expect(()=> rep.add(obj3)).to.throw(TypeError, `Property hobby is not of correct type!`);
  56.         });
  57.     });
  58.  
  59.     describe("getId", function () {
  60.         it("Should reflect getId entity correctly", function () {
  61.             let props = { name: 'string', age: 'number'};
  62.             let rep = new Repository(props);
  63.             let obj1 = { name: 'ivan', age: 20};
  64.             let obj2 = { name: 'ivan2', age: 22};
  65.             let id = rep.add(obj1);
  66.             let id2 = rep.add(obj2);
  67.  
  68.             let actual = rep.getId(1);
  69.             expect(actual).to.eql(obj2);
  70.             let actual2 = rep.getId(0);
  71.             expect(actual2).to.eql(obj1);
  72.         });
  73.  
  74.         it("Should throw when id does not exist", function () {
  75.             let props = { name: 'string', age: 'number'};
  76.             let rep = new Repository(props);
  77.             let obj1 = { name: 'ivan', age: 12};
  78.             expect(()=> rep.getId(0)).to.throw(Error, `Entity with id: 0 does not exist!`);
  79.             let id = rep.add(obj1);
  80.             expect(()=> rep.getId(1)).to.throw(Error, `Entity with id: 1 does not exist!`);
  81.         });
  82.     });
  83.  
  84.     describe("update", function () {
  85.         it("Should reflect update entity correctly", function () {
  86.             let props = { name: 'string', age: 'number'};
  87.             let rep = new Repository(props);
  88.             let obj1 = { name: 'ivan', age: 20};
  89.             let obj2 = { name: 'ivan2', age: 22};
  90.             let obj3 = { name: 'gosho', age: 15};
  91.             let obj4 = { name: 'peter', age: 40};
  92.             let id = rep.add(obj1);
  93.             let id2 = rep.add(obj2);
  94.  
  95.             rep.update(1, obj3);
  96.             expect(rep.data.get(1)).to.eql(obj3);
  97.             rep.update(0, obj4);
  98.             expect(rep.data.get(0)).to.eql(obj4);
  99.         });
  100.  
  101.         it("Should throw when when parameters are incorrect", function () {
  102.             let props = { name: 'string', age: 'number'};
  103.             let rep = new Repository(props);
  104.             let obj1 = { name: 'ivan', age: 12};
  105.             let obj2 = { name: 'ivan'};
  106.             let obj3 = { name: 'ivan', age: true};
  107.             let obj4 = { name: 'ivan', age: 12, hobby: true};
  108.             expect(()=> rep.update(0, obj1)).to.throw(Error, `Entity with id: 0 does not exist!`);
  109.             let id = rep.add(obj1);
  110.             expect(()=> rep.update(1, obj1)).to.throw(Error, `Entity with id: 1 does not exist!`);
  111.  
  112.             expect(()=> rep.update(0,obj2)).to.throw(Error, `Property age is missing from the entity!`);
  113.             expect(()=> rep.update(0,obj3)).to.throw(TypeError, `Property age is not of correct type!`);
  114.             expect(()=> rep.update(0,obj4)).to.throw(TypeError, `Property hobby is not of correct type!`);
  115.         });
  116.     });
  117.  
  118.     describe("del", function () {
  119.         it("Should reflect delete correctly", function () {
  120.             let props = { name: 'string', age: 'number'};
  121.             let rep = new Repository(props);
  122.             let obj1 = { name: 'ivan', age: 20};
  123.             let obj2 = { name: 'ivan2', age: 22};
  124.             let obj3 = { name: 'gosho', age: 15};
  125.             let obj4 = { name: 'peter', age: 40};
  126.             let id = rep.add(obj1);
  127.             let id2 = rep.add(obj2);
  128.  
  129.             rep.del(0);
  130.             expect(rep.data.get(1)).to.eql(obj2);
  131.             rep.del(1);
  132.             expect(rep.data.size).to.equal(0);
  133.         });
  134.  
  135.         it("Should throw when parameters are incorrect", function () {
  136.             let props = { name: 'string', age: 'number'};
  137.             let rep = new Repository(props);
  138.             let obj1 = { name: 'ivan', age: 12};
  139.             let obj2 = { name: 'ivan'};
  140.             let obj3 = { name: 'ivan', age: true};
  141.             let obj4 = { name: 'ivan', age: 12, hobby: true};
  142.             expect(()=> rep.del(0)).to.throw(Error, `Entity with id: 0 does not exist!`);
  143.             let id = rep.add(obj1);
  144.             expect(()=> rep.del(1)).to.throw(Error, `Entity with id: 1 does not exist!`);
  145.         });
  146.     });
  147. });
Advertisement
Add Comment
Please, Sign In to add comment