Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2015
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. declare var describe, it, require, before;
  2. import IBusiness    = require("../../src/business/iBusiness");
  3. import IDataAccess  = require("../../src/dataAccess/iDataAccess");
  4. import Disability   = require("../../src/domain/entity/disability");
  5. import User         = require("../../src/domain/entity/user");
  6. import UserBusiness = require("../../src/business/userBusiness");
  7.  
  8. var Assert = require("assert");
  9.  
  10. var business: IBusiness, mockedData: any;
  11. var mail: string = (new Date()).toISOString();
  12.  
  13. class MockUserDataAccess implements IDataAccess {
  14.     public create (data: any): User {
  15.         data.status = true;
  16.         data._id = "";
  17.         return data;
  18.     }
  19.     public retrieve (email?: string): User | User[] {
  20.         var data = [ new User("test", mail, "123456", true, true, Disability.BLINDNESS, 3) ];
  21.         return (email===undefined)? data : (email===data[0].getEmail())? data[0] : null;
  22.     }
  23.     public update (email: string, data: any): User {
  24.         var user: User = new User("test", mail, "123456", true, true, Disability.BLINDNESS, 3);
  25.         if(email===mail){
  26.             user.setName(data.name);
  27.             return user;
  28.         } else {
  29.             return null;
  30.         } }
  31.     public delete (email: string): boolean { return (email===mail); }
  32. }
  33.  
  34. describe("UserBusiness", () => {
  35.    
  36.     before(() => {
  37.         business = new UserBusiness(new MockUserDataAccess());
  38.         mockedData = {
  39.             name: "test",
  40.             email: mail,
  41.             password: "123456",
  42.             disabled: true,
  43.             helper: true,
  44.             disability: Disability.BLINDNESS,
  45.             disabilityLevel: 3
  46.         };
  47.     });
  48.    
  49.     it("should return the response from dataAccess after create procedure", (done) => {
  50.         var current: User = business.create(mockedData);
  51.         var expected: User = new User("test", mail, "123456", true, true, Disability.BLINDNESS, 3, true, "");
  52.         Assert.deepEqual(current, expected);
  53.         done();
  54.     });
  55.    
  56.     it("should retrieve the User list from the dataAccess", (done) => {
  57.         var expected: User[] = [ new User("test", mail, "123456", true, true, Disability.BLINDNESS, 3) ];
  58.         var current: User[] = business.retrieve();
  59.         Assert.deepEqual(current, expected);
  60.         done();
  61.     });
  62.    
  63.     it("should retrieve the correct User given his email", (done) => {
  64.         var expected: string = mail;
  65.         var current: User = business.retrieve(expected);
  66.         Assert.equal(current.getEmail(), expected);
  67.         done();
  68.     });
  69.    
  70.     it("should fail to retrieve a User given an unknown email", (done) => {
  71.         var expected: User = null;
  72.         var current: User = business.retrieve("wrong@mail.com");
  73.         Assert.equal(current, expected);
  74.         done();
  75.     });
  76.    
  77.     it("should update User's name", (done) => {
  78.         var email = mail;
  79.         var data: any = { name: "New Name" };
  80.         var expected: string = "New Name";
  81.         var current: User = business.update(email, data);
  82.         Assert.equal(current.getName(), expected);
  83.         done();
  84.     });
  85.    
  86.     it("should remove the User from the repository", (done) => {
  87.         var expected: boolean = true;
  88.         var current: boolean = business.delete(mail);
  89.         Assert.equal(current, expected);
  90.         done();
  91.     });
  92.    
  93.     it("should fail removing the User due to unknown email", (done) => {
  94.         var expected: boolean = false;
  95.         var current: boolean = business.delete("wrong@mail.com");
  96.         Assert.equal(current, expected);
  97.         done();
  98.     });
  99. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement