Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        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);
            }
        }
Exemplo n.º 12
0
        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);
            }
        }