public async Task ShouldReturnJsonListOfEmployees() { await dbContext.Employees.AddAsync(new Employee { Name = "Ola Dwa", Email = "*****@*****.**" }); await dbContext.SaveChangesAsync(); using (var testServer = new TestServerBuilder() .With(b => b.RegisterModule <BranchOfficeAutofacModule>()) .Build()) { var client = testServer.CreateClient(); var result = await client.GetStringAsync("/api/employees/list"); var items = JArray.Parse(result); Assert.Single(items); } }
public async Task ShouldDeleteUserInRepositoryWhenRequestedByManager() { var mock = new Moq.Mock <IUserRepository>(); mock.Setup(m => m.DeleteUser(It.IsAny <string>())).Returns(Task.CompletedTask); mock.Setup(m => m.IsValidAsync("*****@*****.**", "pass")).ReturnsAsync(true); mock.Setup(m => m.IsManager("*****@*****.**")).ReturnsAsync(true); using (var testServer = new TestServerBuilder() .WithMock <IUserRepository>(typeof(IUserRepository), mock) .Build()) { var client = testServer.CreateClient(); client.AddBasicAuthHeader("*****@*****.**", "pass"); var response = await client.DeleteAsync("/api/user/[email protected]"); Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode); } }
public async Task PostOneEHObj_ShouldSucceed_UnitTest() { var mock = new Moq.Mock <IWebObjectService>(); mock.Setup(m => m.AddEmployeeHours(Moq.It.IsAny <WebEmployeeHours>())); using (var testServer = new TestServerBuilder() .WithMock <IWebObjectService>(typeof(IWebObjectService), mock) .Build()) { var client = testServer.CreateClient(); var myJson = "{ 'employeeId': 33 }"; HttpContent requestContent = new StringContent(myJson, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/employee_hours", requestContent); Assert.Equal(System.Net.HttpStatusCode.Created, response.StatusCode); } mock.Verify(m => m.AddEmployeeHours(Moq.It.IsAny <WebEmployeeHours>()), Moq.Times.Once); }
public async Task ShouldCreateNewUserInRepository() { var mock = new Moq.Mock <IUserRepository>(); mock.Setup(m => m.CreateUser(It.IsAny <string>())).ReturnsAsync("pass"); using (var testServer = new TestServerBuilder() .WithMock <IUserRepository>(typeof(IUserRepository), mock) .Build()) { var client = testServer.CreateClient(); var response = await client.PostAsync("/api/user/[email protected]", new StringContent("")); Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var items = JsonConvert.DeserializeObject <UserCreatedResponse>(jsonString); Assert.Equal("pass", items.Password); } }
public async Task EditOneEHObj_ShouldReturn404_WhenNotFound() { var mock = new Moq.Mock <IWebObjectService>(); mock.Setup(m => m.GetOneEmployeeHours(77)).Returns( (WebEmployeeHours)null ); using (var testServer = new TestServerBuilder() .WithMock <IWebObjectService>(typeof(IWebObjectService), mock) .Build()) { var client = testServer.CreateClient(); var myJson = "{ 'employeeId': 33, 'Value': 15, 'TimePeriod': '20.1.2019-26.01.2019', 'HoursCount': 99, 'id': 77 }"; HttpContent requestContent = new StringContent(myJson, Encoding.UTF8, "application/json"); var response = await client.PutAsync("/api/employee_hours", requestContent); Assert.Equal(System.Net.HttpStatusCode.NotFound, response.StatusCode); } }
public async Task DeleteOneEHObj_ShouldReturn202_WhenFound_RealWebService() { var mock = new Moq.Mock <IDataAccessObjectService>(); mock.Setup(m => m.DeleteEmployeeHours(77)); mock.Setup(m => m.GetOneEmployeeHours(77)).Returns( new EmployeeHours { EmployeeId = 1, EmployeeHoursId = 77, TimePeriod = "aa", Value = 100 }); using (var testServer = new TestServerBuilder() .WithMock <IDataAccessObjectService>(typeof(IDataAccessObjectService), mock) .Build()) { var client = testServer.CreateClient(); var response = await client.DeleteAsync("/api/employee_hours/77"); Assert.Equal(System.Net.HttpStatusCode.Accepted, response.StatusCode); } mock.Verify(x => x.DeleteEmployeeHours(77), Moq.Times.Once); }
public async Task DeleteOneEHObj_ShouldReturn202_WhenFound() { var mock = new Moq.Mock <IWebObjectService>(); mock.Setup(m => m.GetOneEmployeeHours(77)).Returns( new WebEmployeeHours() { Value = 15, TimePeriod = "20.1.2019-26.01.2019", EmployeeId = 1, Id = 77 } ); using (var testServer = new TestServerBuilder() .WithMock <IWebObjectService>(typeof(IWebObjectService), mock) .Build()) { var client = testServer.CreateClient(); var response = await client.DeleteAsync("/api/employee_hours/77"); Assert.Equal(System.Net.HttpStatusCode.Accepted, response.StatusCode); } }
public async Task ShouldNotReturnJsonEmployee_WhenNotExists() { var mock = new Moq.Mock <IWebObjectService>(); mock.Setup(m => m.GetEmployee(33)).Returns( new WebEmployee() { Name = "John", ID = 33 } ); using (var testServer = new TestServerBuilder() .WithMock <IWebObjectService>(typeof(IWebObjectService), mock) .Build()) { var client = testServer.CreateClient(); var response = await client.GetAsync("/api/employees/100"); Assert.Equal(System.Net.HttpStatusCode.NotFound, response.StatusCode); } }
public async Task PostOneEHObj_ShouldFail_WhenAddingToDBThrowsException() { var mockDB = new Moq.Mock <IDataAccessObjectService>(); mockDB.Setup(m => m.AddEmployeeHours(Moq.It.IsAny <EmployeeHours>(), false)).Throws <ArgumentException>(); using (var testServer = new TestServerBuilder() .WithMock <IDataAccessObjectService>(typeof(IDataAccessObjectService), mockDB) .Build()) { var client = testServer.CreateClient(); var myJson = "{ 'employeeId': 33 }"; HttpContent requestContent = new StringContent(myJson, Encoding.UTF8, "application/json"); var response = await client.PostAsync("/api/employee_hours", requestContent); Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode); var jsonString = await response.Content.ReadAsStringAsync(); Assert.Equal("Problem when adding the object to database: Value does not fall within the expected range.", jsonString); } mockDB.Verify(m => m.AddEmployeeHours(Moq.It.IsAny <EmployeeHours>(), false), Moq.Times.Once); }
public async Task GetEmployeesList_WhenSomeData() { await dbContext.Employees.AddAsync(new Employee { Name = "Ola Dwa", Email = "*****@*****.**" }); await dbContext.Employees.AddAsync(new Employee { Name = "Ola Trzy", Email = "*****@*****.**" }); await dbContext.SaveChangesAsync(); using (var testServer = new TestServerBuilder() .Build()) { var client = testServer.CreateClient(); var response = await client.GetAsync("/api/employees/list"); Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var items = JArray.Parse(jsonString); Assert.Equal(2, items.Count); } }
public async Task EditOneEHObj_ShouldFail_WhenEditingInDBThrowsException() { var mockDB = new Moq.Mock <IDataAccessObjectService>(); mockDB.Setup(m => m.GetOneEmployeeHours(77)). Returns(new EmployeeHours { EmployeeHoursId = 77, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 4 }); mockDB.Setup(m => m.GetOneEmployee(33)). Returns((Employee)null); mockDB.Setup(m => m.EditEmployeeHours(Moq.It.IsAny <EmployeeHours>())).Throws <ArgumentException>(); using (var testServer = new TestServerBuilder() .WithMock <IDataAccessObjectService>(typeof(IDataAccessObjectService), mockDB) .Build()) { var client = testServer.CreateClient(); var myJson = "{ 'employeeId': 33, 'Value': 15, 'TimePeriod': '20.1.2019-26.01.2019', 'HoursCount': 99, 'id': 77 }"; HttpContent requestContent = new StringContent(myJson, Encoding.UTF8, "application/json"); var response = await client.PutAsync("/api/employee_hours", requestContent); Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode); } }
public async Task GetEHColl_WhenSomeData() { await dbContext.EmployeeHoursCollection.AddAsync( new EmployeeHours { EmployeeHoursId = 100, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 33 }); await dbContext.EmployeeHoursCollection.AddAsync( new EmployeeHours { EmployeeHoursId = 102, Value = 100f, TimePeriod = "02.01.2019_08.01.2019", EmployeeId = 33 }); await dbContext.SaveChangesAsync(); using (var testServer = new TestServerBuilder() .Build()) { var client = testServer.CreateClient(); var response = await client.GetAsync("/api/employee_hours/list/33"); Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode); var jsonString = await response.Content.ReadAsStringAsync(); var items = JArray.Parse(jsonString); Assert.Equal(2, items.Count); } }