public async Task GetAll_WithDevicesAvailable_ReturnsDevices()
        {
            //Arrange
            var dbContext         = DbContextMocker.GetDbContext(nameof(GetAll_WithDevicesAvailable_ReturnsDevices));
            var devicesController = new DevicesController(dbContext);
            var expectedDevices   = new List <Device>
            {
                new Device()
                {
                    Device_id = 1, Name = "testName1", Location = "testLocation1"
                },
                new Device()
                {
                    Device_id = 2, Name = "testName2", Location = "testLocation2"
                },
                new Device()
                {
                    Device_id = 3, Name = "testName3", Location = "testLocation3"
                }
            };

            //Act
            var response = await devicesController.GetAll();

            var result          = (ObjectResult)response.Result;
            var devicesReceived = result.Value.As <List <Device> >();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
            Assert.True(DevicesComparer.CompareDevicesLists(devicesReceived, expectedDevices), "Devices list did not contain the " +
                        "expected device.");
        }
        public void Update_WithValidParameters_DeviceIsUpdated()
        {
            //Arrange
            var dbContext           = DbContextMocker.GetDbContext(nameof(Update_WithValidParameters_DeviceIsUpdated));
            var devicesController   = new DevicesController(dbContext);
            var updateDeviceRequest = new UpdateDeviceRequest
            {
                Name     = "updatedName",
                Location = "updatedLocation"
            };
            var expectedDevice = new Device
            {
                Device_id = 1,
                Name      = "updatedName",
                Location  = "updatedLocation"
            };

            //Act
            var response       = devicesController.Update(1, updateDeviceRequest);
            var result         = (ObjectResult)response.Result;
            var deviceReceived = result.Value.As <Device>();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
            Assert.True(DevicesComparer.CompareDevices(deviceReceived, expectedDevice), "The device received is different " +
                        "than the expected.");
        }
        public async Task Create_WithValidParameters_DeviceIsAdded()
        {
            //Arrange
            var dbContext           = DbContextMocker.GetDbContext(nameof(Create_WithValidParameters_DeviceIsAdded));
            var devicesController   = new DevicesController(dbContext);
            var createDeviceRequest = new CreateDeviceRequest
            {
                Name     = "testName1",
                Location = "testLocation1"
            };
            var expectedDevice = new Device
            {
                Device_id = 4,
                Name      = "testName1",
                Location  = "testLocation1"
            };

            //Act
            var response = await devicesController.Create(createDeviceRequest);

            var result         = (ObjectResult)response.Result;
            var deviceReceived = result.Value.As <Device>();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.Created);
            Assert.True(DevicesComparer.CompareDevices(deviceReceived, expectedDevice), "The device received is different " +
                        "than the expected.");
        }
Beispiel #4
0
        public async Task GetById_WithDeviceAvailable_ReturnsDevice()
        {
            CreateDeviceRequest deviceRequest = new CreateDeviceRequest {
                Name = "integrationTestName1", Location = "integrationTestLocation1"
            };

            //Arrange
            var insertSqlString = $"Insert into Devices (Name, Location) values('{deviceRequest.Name}', '{deviceRequest.Location}')";

            ExecuteNonQuery(insertSqlString);

            var selectSqlString = $"Select * from Devices WHERE Name = '{deviceRequest.Name}'";
            var device          = ExecuteDevicesQuery(selectSqlString);

            Assert.NotNull(device);

            string requestUri = $"Devices/{device.Device_id}";

            // Act
            var response = await HttpClient.GetAsync(requestUri);

            var receivedDevice = await response.Content.ReadAsAsync <Device>();

            //Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            Assert.True(DevicesComparer.CompareDeviceWithDeviceRequest(receivedDevice, deviceRequest), "The requested device was not found in the" +
                        " device retrieved by the GetById.");

            //Clean Up
            var cleanUpSqlString = $"DELETE From Devices WHERE Name = '{deviceRequest.Name}'";
            var cleanedUp        = ExecuteNonQuery(cleanUpSqlString);

            Assert.True(cleanedUp, "It was not possible to clean up the database.");
        }
Beispiel #5
0
        public async Task Update_WithValidParameters_DeviceWasUpdated()
        {
            //Arrange
            CreateDeviceRequest deviceCreateRequest = new CreateDeviceRequest {
                Name = "integrationTestName1", Location = "integrationTestLocation1"
            };

            var insertSqlString = $"Insert into Devices (Name, Location) values('{deviceCreateRequest.Name}', '{deviceCreateRequest.Location}')";

            ExecuteNonQuery(insertSqlString);

            var selectSqlString = $"Select * from Devices WHERE Name = '{deviceCreateRequest.Name}'";
            var device          = ExecuteDevicesQuery(selectSqlString);

            Assert.NotNull(device);

            UpdateDeviceRequest deviceUpdateRequest = new UpdateDeviceRequest {
                Name = "integrationTestNameUpdated1", Location = "integrationTestLocationUpdated1"
            };
            var         updatePayload = JsonConvert.SerializeObject(deviceUpdateRequest);
            HttpContent updateContent = new StringContent(updatePayload, Encoding.UTF8, "application/json");

            string requestUri = $"Devices/{device.Device_id}";

            // Act
            var response = await HttpClient.PutAsync(requestUri, updateContent);

            //Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);

            selectSqlString = $"Select * from Devices WHERE Name = '{deviceUpdateRequest.Name}'";
            var receivedUpdatedDevice = ExecuteDevicesQuery(selectSqlString);

            Assert.NotNull(receivedUpdatedDevice);

            Assert.True(DevicesComparer.CompareDeviceWithDeviceRequest(receivedUpdatedDevice, deviceUpdateRequest), "The device was not updated.");

            //Clean Up
            var cleanUpSqlString = $"DELETE FROM Devices WHERE Name = '{deviceUpdateRequest.Name}'";
            var cleanedUp        = ExecuteNonQuery(cleanUpSqlString);

            Assert.True(cleanedUp, "It was not possible to clean up the database.");
        }
        public async Task GetById_WithDeviceAvailable_ReturnsDevice()
        {
            //Arrange
            var dbContext         = DbContextMocker.GetDbContext(nameof(GetById_WithDeviceAvailable_ReturnsDevice));
            var devicesController = new DevicesController(dbContext);
            var expectedDevice    = new Device
            {
                Device_id = 1, Name = "testName1", Location = "testLocation1"
            };

            //Act
            var response = await devicesController.GetById(1);

            var result         = (ObjectResult)response.Result;
            var deviceReceived = result.Value.As <Device>();

            dbContext.Dispose();

            //Assert
            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
            Assert.True(DevicesComparer.CompareDevices(deviceReceived, expectedDevice), "The device received is different " +
                        "than the expected.");
        }
Beispiel #7
0
        public async Task GetAll_WithValidParameters_ReturnDevices()
        {
            //Arrange
            CreateDeviceRequest deviceRequest1 = new CreateDeviceRequest {
                Name = "integrationTestName1", Location = "integrationTestLocation1"
            };
            CreateDeviceRequest deviceRequest2 = new CreateDeviceRequest {
                Name = "integrationTestName2", Location = "integrationTestLocation2"
            };

            var sqlString = $"Insert into Devices (Name, Location) values('{deviceRequest1.Name}', '{deviceRequest1.Location}')" +
                            $", ('{deviceRequest2.Name}', '{deviceRequest2.Location}')";

            ExecuteNonQuery(sqlString);

            string requestUri = "Devices";

            // Act
            var response = await HttpClient.GetAsync(requestUri);

            var receivedDevices = await response.Content.ReadAsAsync <List <Device> >();

            //Assert
            response.StatusCode.Should().Be(HttpStatusCode.OK);

            Assert.True(DevicesComparer.DoesDevicesListContainSpecificDevice(receivedDevices, deviceRequest1), "The requested device was not found in the" +
                        " device list retrieved by the GetAll.");
            Assert.True(DevicesComparer.DoesDevicesListContainSpecificDevice(receivedDevices, deviceRequest2), "The requested device was not found in the" +
                        " device list retrieved by the GetAll.");

            //Clean Up
            var cleanUpSqlString = $"DELETE From Devices WHERE Name IN ('{deviceRequest1.Name}', '{deviceRequest2.Name}')";
            var cleanedUp        = ExecuteNonQuery(cleanUpSqlString);

            Assert.True(cleanedUp, "It was not possible to clean up the database.");
        }