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"); }
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(); }