public void insert(String exchangeCode, String hostname, String serialNumber, DeviceType deviceType) { int availablePorts = 100; insert(exchangeCode, hostname, serialNumber, deviceType, availablePorts); }
@Bean public BroadbandAccessDeviceDatabaseDataProvider broadbandAccessDeviceDatabaseDataProvider(JdbcTemplate jdbcTemplate) { return new BroadbandAccessDeviceDatabaseDataProvider(jdbcTemplate); }
@Override public BroadbandAccessDevice getDetails(String hostname) { try { return doGetDetails(hostname); } catch (IncorrectResultSizeDataAccessException e) { return null; } }
private void thenTheModelHasBeenUpdatedFor(String hostname, String expectedSerialNumber) { BroadbandAccessDevice device = broadbandAccessDeviceDatabaseDataProvider.getDetails(hostname); assertThat(device.getSerialNumber()).isEqualTo(expectedSerialNumber); log("Device " + hostname + " in model after reconciliation", "Hostname: " + hostname + ", Serial Number: " + expectedSerialNumber); }
@Test public void updatesSerialNumberOfADevice() throws Exception { givenABroadbandAccessDevice("hostname1", "serialNumber1", FIBRE); broadbandAccessDeviceDatabaseDataProvider.updateSerialNumber("hostname1", "newSerialNumber"); String serialNumber = broadbandAccessDeviceDatabaseDataProvider.getSerialNumber("hostname1"); assertThat(serialNumber).isEqualTo("newSerialNumber"); }
@Test public void returnsTheHostnameOfAllDevices() throws Exception { thereThereAreDevices("hostname1", "hostname2", "hostname3"); List<String> allDeviceHostnames = broadbandAccessDeviceDatabaseDataProvider.getAllDeviceHostnames(); assertThat(allDeviceHostnames).containsOnly("hostname1", "hostname2", "hostname3"); }
@Test public void returnsSerialNumberOfADevice() throws Exception { givenDeviceHasSerialNumber("hostname1", "serialNumber1"); String serialNumber = broadbandAccessDeviceDatabaseDataProvider.getSerialNumber("hostname1"); assertThat(serialNumber).isEqualTo("serialNumber1"); }
@Test public void returnsAvailablePortsOfAllDevicesInAnExchange() throws Exception { Map<String, Object> device1 = detailsForDevice("exchangeCode", "exchangeName", "exchangePostcode1", "hostname1", "serialNumber1", ADSL, 2); Map<String, Object> device2 = detailsForDevice("exchangeCode", "exchangeName", "exchangePostcode2", "hostname2", "serialNumber2", FIBRE, 4); when(jdbcTemplate.queryForList(anyString(), eq("exchangeCode"))).thenReturn(asList(device1, device2)); List<BroadbandAccessDevice> broadbandAccessDevices = broadbandAccessDeviceDatabaseDataProvider.getAvailablePortsOfAllDevicesInExchange("exchangeCode"); assertThat(broadbandAccessDevices).hasSize(2); thenTheDeviceHasAvailablePortsWithType(broadbandAccessDevices.get(0), 2, ADSL); thenTheDeviceHasAvailablePortsWithType(broadbandAccessDevices.get(1), 4, FIBRE); }
@Test public void updatesTheSerialNumberOfADevice() throws Exception { broadbandAccessDeviceDatabaseDataProvider.updateSerialNumber("hostname1", "newSerialNumber"); verify(jdbcTemplate).update(anyString(), eq("newSerialNumber"), eq("hostname1")); }
private void thenTheModelHasNotBeenUpdatedFor(String hostname, String expectedSerialNumber) { BroadbandAccessDevice device = broadbandAccessDeviceDatabaseDataProvider.getDetails(hostname); assertThat(device.getSerialNumber()).isEqualTo(expectedSerialNumber); log("Device " + hostname + " in model after reconciliation", "Hostname: " + hostname + ", Serial Number: " + expectedSerialNumber); }
@Test public void returnsEmptyListWhenThereAreNoDevices() throws Exception { givenThereAreNoDevices(); List<String> allDeviceHostnames = broadbandAccessDeviceDatabaseDataProvider.getAllDeviceHostnames(); assertThat(allDeviceHostnames).isEmpty(); }
@Test public void getsTheSerialNumberOfADevice() throws Exception { givenABroadbandAccessDevice("hostname1", "serialNumber1", FIBRE); String serialNumber = broadbandAccessDeviceDatabaseDataProvider.getSerialNumber("hostname1"); assertThat(serialNumber).isEqualTo("serialNumber1"); }
@Test public void returnsAvailablePortsOfAllDevicesInExchange() throws Exception { givenABroadbandAccessDevice(EXCHANGE_CODE, "hostname1", "serialNumber1", FIBRE, 123); givenABroadbandAccessDevice(EXCHANGE_CODE, "hostname2", "serialNumber2", ADSL, 456); givenAnExistingExchange("exch2"); givenABroadbandAccessDevice("exch2", "hostname3", "serialNumber3", ADSL, 999); List<BroadbandAccessDevice> broadbandAccessDevices = broadbandAccessDeviceDatabaseDataProvider.getAvailablePortsOfAllDevicesInExchange(EXCHANGE_CODE); assertThat(broadbandAccessDevices).hasSize(2); thenTheDeviceHasAvailablePortsWithType(broadbandAccessDevices.get(0), 123, FIBRE); thenTheDeviceHasAvailablePortsWithType(broadbandAccessDevices.get(1), 456, ADSL); }
private void givenABroadbandAccessDevice(String hostname, String serialNumber, DeviceType deviceType) { broadbandAccessDeviceDatabaseDataProvider.insert(EXCHANGE_CODE, hostname, serialNumber, deviceType); }
@Test public void returnsTheDetailsOfADevice() throws Exception { givenThereIsADevice("exchangeCode", "exchangeName", "exchangePostcode", "hostname", "serialNumber", ADSL, 123); BroadbandAccessDevice device = broadbandAccessDeviceDatabaseDataProvider.getDetails("hostname"); assertThat(device.getHostname()).isEqualTo("hostname"); assertThat(device.getSerialNumber()).isEqualTo("serialNumber"); assertThat(device.getType()).isEqualTo(ADSL); assertThat(device.getAvailablePorts()).isEqualTo(123); assertThat(device.getExchange().getCode()).isEqualTo("exchangeCode"); assertThat(device.getExchange().getName()).isEqualTo("exchangeName"); assertThat(device.getExchange().getPostCode()).isEqualTo("exchangePostcode"); }
@Test public void getsAllDeviceHostnames() throws Exception { givenABroadbandAccessDevice("hostname1"); givenABroadbandAccessDevice("hostname2"); List<String> allDeviceHostnames = broadbandAccessDeviceDatabaseDataProvider.getAllDeviceHostnames(); assertThat(allDeviceHostnames).containsOnly("hostname1", "hostname2"); }
@Test public void returnsNullSerialNumberForADeviceThatDoesNotExist() throws Exception { givenDeviceDoesNotExist("hostname1"); String serialNumber = broadbandAccessDeviceDatabaseDataProvider.getSerialNumber("hostname1"); assertThat(serialNumber).isNull(); }
private void givenABroadbandAccessDevice(String exchangeCode, String hostname, String serialNumber, DeviceType deviceType, int availablePorts) { broadbandAccessDeviceDatabaseDataProvider.insert(exchangeCode, hostname, serialNumber, deviceType, availablePorts); }
@Test public void getsDeviceDetails() throws Exception { givenABroadbandAccessDevice("hostname1", "serialNumber1", FIBRE, 123); BroadbandAccessDevice device = broadbandAccessDeviceDatabaseDataProvider.getDetails("hostname1"); assertThat(device.getHostname()).isEqualTo("hostname1"); assertThat(device.getSerialNumber()).isEqualTo("serialNumber1"); assertThat(device.getType()).isEqualTo(FIBRE); assertThat(device.getAvailablePorts()).isEqualTo(123); assertThat(device.getExchange().getCode()).isEqualTo(EXCHANGE_CODE); assertThat(device.getExchange().getName()).isEqualTo(EXCHANGE_NAME); assertThat(device.getExchange().getPostCode()).isEqualTo(EXCHANGE_POSTCODE); }
private void givenThereAreAdslDevicesWithNoAvailablePortsInExchange(String exchangeCode) { broadbandAccessDeviceDatabaseDataProvider.insert(exchangeCode, "device1", "defaultSerialNumber", ADSL, 0); log("ADSL Device1", "Available Ports: 0"); broadbandAccessDeviceDatabaseDataProvider.insert(exchangeCode, "device2", "defaultSerialNumber", ADSL, 1); log("ADSL Device2", "Available Ports: 1"); }