@Test public void whenTwoServicesHaveTheSameId_theyShouldBeEqual() { Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("foo").build(); Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("fo").build(); assertTrue(one.equals(two)); }
@Test public void noName() { Set<Service> serviceSet = new HashSet<Service>(); Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("foo").build(); Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("fo").build(); serviceSet.add(one); // assertTrue(serviceSet.contains(two)); serviceSet.remove(two); assertTrue(serviceSet.isEmpty()); }
@Test public void whenShipmentIsBuiltWithoutSpecifyingCapacity_itShouldHvCapWithOneDimAndDimValOfZero() { Service one = Service.Builder.newInstance("s").setLocationId("foofoo").build(); assertEquals(1, one.getSize().getNuOfDimensions()); assertEquals(0, one.getSize().get(0)); }
@Test public void whenShipmentIsBuiltWithConstructorWhereSizeIsSpecified_capacityShouldBeSetCorrectly() { Service one = Service.Builder.newInstance("s").addSizeDimension(0, 1).setLocationId("foofoo").build(); assertEquals(1, one.getSize().getNuOfDimensions()); assertEquals(1, one.getSize().get(0)); }
@Test public void whenAddingTwoCapDimension_nuOfDimsShouldBeTwo() { Service one = Service.Builder.newInstance("s") .setLocationId("foofoo") .addSizeDimension(0, 2) .addSizeDimension(1, 4) .build(); assertEquals(2, one.getSize().getNuOfDimensions()); }
@Test public void whenSettingTimeWindow_itShouldBeSetCorrectly() { Service s = Service.Builder.newInstance("s") .setLocationId("loc") .setTimeWindow(TimeWindow.newInstance(1.0, 2.0)) .build(); assertEquals(1.0, s.getTimeWindow().getStart(), 0.01); assertEquals(2.0, s.getTimeWindow().getEnd(), 0.01); }
@Test public void whenAddingSkillsCaseSensV2_theyShouldBeAddedCorrectly() { Service s = Service.Builder.newInstance("s") .setLocationId("loc") .addRequiredSkill("screwDriver") .build(); assertFalse(s.getRequiredSkills().containsSkill("drill")); assertFalse(s.getRequiredSkills().containsSkill("drilL")); }
@Test(expected = IllegalArgumentException.class) public void whenCapacityDimValueIsNegative_throwIllegalStateExpception() { @SuppressWarnings("unused") Service s = Service.Builder.newInstance("s").setLocationId("foo").addSizeDimension(0, -10).build(); }
@Test public void whenSettingLocation_itShouldBeSetCorrectly() { Service s = Service.Builder.newInstance("s").setLocationId("loc").build(); assertEquals("loc", s.getLocationId()); }
@Test public void whenSettingServiceTime_itShouldBeSetCorrectly() { Service s = Service.Builder.newInstance("s").setLocationId("loc").setServiceTime(1).build(); assertEquals(1.0, s.getServiceDuration(), 0.01); }
@Test(expected = IllegalArgumentException.class) public void whenTimeWindowIsNull_throwException() { @SuppressWarnings("unused") Service s = Service.Builder.newInstance("s").setLocationId("loc").setTimeWindow(null).build(); }
@Test(expected = IllegalArgumentException.class) public void whenServiceTimeSmallerZero_throwIllegalStateException() { @SuppressWarnings("unused") Service s = Service.Builder.newInstance("s").setLocationId("loc").setServiceTime(-1).build(); }
@Test(expected = IllegalStateException.class) public void whenSettingNeitherLocationIdNorCoord_throwsException() { @SuppressWarnings("unused") Service s = Service.Builder.newInstance("s").build(); }
@Test public void whenSettingLocationCoord_itShouldBeSetCorrectly() { Service s = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(1, 2)).build(); assertEquals(1.0, s.getCoord().getX(), 0.01); assertEquals(2.0, s.getCoord().getY(), 0.01); }
@Test public void whenCallingForNewInstanceOfBuilder_itShouldReturnBuilderCorrectly() { Service.Builder builder = Service.Builder.newInstance("s"); assertNotNull(builder); assertTrue(builder instanceof Service.Builder); }
@Test public void nameShouldBeAssigned() { Service s = (Service) Service.Builder.newInstance("s").setLocationId("loc").setName("name").build(); assertEquals("name", s.getName()); }
@Before public void doBefore() { Vehicle vehicle = mock(Vehicle.class); VehicleType type = mock(VehicleType.class); when(type.getCapacityDimensions()) .thenReturn(Capacity.Builder.newInstance().addDimension(0, 20).build()); when(vehicle.getType()).thenReturn(type); VehicleRoutingProblem.Builder serviceProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); Service s1 = Service.Builder.newInstance("s").addSizeDimension(0, 10).setLocationId("loc").build(); Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 5).setLocationId("loc").build(); serviceProblemBuilder.addJob(s1).addJob(s2); final VehicleRoutingProblem serviceProblem = serviceProblemBuilder.build(); final VehicleRoutingProblem.Builder pdProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0, 10).setLocationId("loc").build(); Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0, 5).setLocationId("loc").build(); pdProblemBuilder.addJob(pickup).addJob(delivery); final VehicleRoutingProblem pdProblem = pdProblemBuilder.build(); final VehicleRoutingProblem.Builder shipmentProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); Shipment shipment1 = Shipment.Builder.newInstance("s1") .addSizeDimension(0, 10) .setPickupLocation("pick") .setDeliveryLocation("del") .build(); Shipment shipment2 = Shipment.Builder.newInstance("s2") .addSizeDimension(0, 5) .setPickupLocation("pick") .setDeliveryLocation("del") .build(); shipmentProblemBuilder.addJob(shipment1).addJob(shipment2).build(); final VehicleRoutingProblem shipmentProblem = shipmentProblemBuilder.build(); VehicleRoute.Builder serviceRouteBuilder = VehicleRoute.Builder.newInstance(vehicle); serviceRouteBuilder.setJobActivityFactory( new JobActivityFactory() { @Override public List<AbstractActivity> createActivities(Job job) { return serviceProblem.copyAndGetActivities(job); } }); serviceRoute = serviceRouteBuilder.addService(s1).addService(s2).build(); VehicleRoute.Builder pdRouteBuilder = VehicleRoute.Builder.newInstance(vehicle); pdRouteBuilder.setJobActivityFactory( new JobActivityFactory() { @Override public List<AbstractActivity> createActivities(Job job) { return pdProblem.copyAndGetActivities(job); } }); pickup_delivery_route = pdRouteBuilder.addService(pickup).addService(delivery).build(); VehicleRoute.Builder shipmentRouteBuilder = VehicleRoute.Builder.newInstance(vehicle); shipmentRouteBuilder.setJobActivityFactory( new JobActivityFactory() { @Override public List<AbstractActivity> createActivities(Job job) { return shipmentProblem.copyAndGetActivities(job); } }); shipment_route = shipmentRouteBuilder .addPickup(shipment1) .addPickup(shipment2) .addDelivery(shipment2) .addDelivery(shipment1) .build(); stateManager = new StateManager(mock(VehicleRoutingProblem.class)); stateManager.updateLoadStates(); }
@Test public void whenSettingNoType_itShouldReturn_service() { Service s = Service.Builder.newInstance("s").setLocationId("loc").build(); assertEquals("service", s.getType()); }