Example #1
0
        public void CreateNewEmployee_MethodCalledWithEmployeeId_ShouldRunSuccessfully()
        {
            //setting up the in-memory database with required data for test
            FakeObjectSet<Employee> employeeObjectSet = new FakeObjectSet<Employee>();
            mockDatabaseConext.Setup(db => db.Employees).Returns(employeeObjectSet);
            mockDatabaseConext.Setup(db => db.SaveChanges()).Returns(1);
            EmployeeBLL employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);
            Employee employeeNewData = TestDataFactory.CreateNewObjectWithValidNewEmployeeData();

            employeeBLL.CreateNewEmployee(employeeNewData);
        }
Example #2
0
        public void CreateNewEmployee_NewEmployeeObjectPassed_ShouldCall_DatabaseContext_SaveChanges_Method()
        {
            /*The reason to use FakeObjectSet is, CreateNewEmployee method includes query level operation for business logic, we need to use FakeObjectSet. If no query was used we could use IObjectSet mock.*/
            FakeObjectSet<Employee> employees = new FakeObjectSet<Employee>();

            //setting up expectation for the DatabaseContext.SaveChanges method to be called
            mockDatabaseConext.Setup(_db => _db.SaveChanges()).Verifiable();
            //an EmployeeDatabaseContext.Employees ObjectSet is required for invoking IObjectSet.AddObject method
            mockDatabaseConext.Setup(_db => _db.Employees).Returns(employees);
            mockDatabaseConext.Setup(_db => _db.SaveChanges()).Returns(1);

            EmployeeBLL employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);

            //calling the method for expected method verification
            employeeBLL.CreateNewEmployee(TestDataFactory.CreateNewObjectWithValidNewEmployeeData());

            mockDatabaseConext.Verify();
        }
Example #3
0
        public void CreateNewEmployee_NewEmployeeObjectPassed_ShouldCall_ObjectSet_AddObject_Method()
        {
            /*Creating Mock (and Fake) ObjectSet of Employee entity
            The reason to use Mock is to make ObjectSet available for verification.
            The reason to use FakeObjectSet is, CreateNewEmployee method includes query level operation for business logic, we need to use FakeObjectSet. If no query was used we could use IObjectSet mock.*/
            Mock<FakeObjectSet<Employee>> employees = new Mock<FakeObjectSet<Employee>>();
            employees.Setup(emp => emp.AddObject(It.IsAny<Employee>())).Verifiable();
            mockDatabaseConext.Setup(db => db.SaveChanges()).Returns(1);

            //an EmployeeDatabaseContext.Employees ObjectSet is required for invoking IObjectSet.AddObject method
            mockDatabaseConext.Setup(_db => _db.Employees).Returns(employees.Object);

            EmployeeBLL employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);

            //calling the method for expected method verification
            employeeBLL.CreateNewEmployee(TestDataFactory.CreateNewObjectWithValidNewEmployeeData());

            employees.Verify();
        }
Example #4
0
        public void GetEmployeeByEmployeeId_MethodCalledWithEmployeeId_ShouldGetCorrespondingEmployeeInfo()
        {
            //---------------------------------- ARRANGE -------------------------------------

            //setting up the in-memory database with required data for test
            FakeObjectSet<Employee> employeeObjectSet = new FakeObjectSet<Employee>();
            Employee employeeOldData = TestDataFactory.CreateNewObjectWithValidExistingEmployeeData();
            employeeObjectSet.AddObject(employeeOldData);
            mockDatabaseConext.Setup(db => db.Employees).Returns(employeeObjectSet);

            EmployeeBLL employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);

            string EXPECTED_ADDRESS = employeeOldData.Address;

            //---------------------------------- ACT -------------------------------------

            Employee employeeNewData = employeeBLL.GetEmployeeByEmployeeId(1);

            //---------------------------------- ASSERT -------------------------------------

            string ACTUAL_ADDRESS = employeeNewData.Address;

            Assert.AreEqual(EXPECTED_ADDRESS, ACTUAL_ADDRESS, "Address should be found");
        }
Example #5
0
        public void GetEmployeeByEmployeeId_NonZeroEmployeeIdPassed_ShouldCall_DatabaseContext_Employees_PropertyGet()
        {
            /*The reason to use FakeObjectSet is, CreateNewEmployee method includes query level operation for business logic, we need to use FakeObjectSet. If no query was used we could use IObjectSet mock.*/
            FakeObjectSet<Employee> employees = new FakeObjectSet<Employee>();

            //setting up expectation for the DatabaseContext.Employees property to be called
            mockDatabaseConext.Setup(_db => _db.Employees).Verifiable();

            //an EmployeeDatabaseContext.Employees ObjectSet is required for invoking IObjectSet.AddObject method
            mockDatabaseConext.Setup(_db => _db.Employees).Returns(employees);

            EmployeeBLL employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);

            //calling the method for expected method verification
            employeeBLL.GetEmployeeByEmployeeId(1);

            mockDatabaseConext.Verify();
        }
 public void MyTestInitialize()
 {
     employeeObjectSet = new FakeObjectSet<Employee>();
     mockDatabaseConext = new Mock<DatabaseContext>();
     employeeBLL = new EmployeeBLL(mockDatabaseConext.Object);
 }