/** * Tests whether decorating an already initialized PDPModel fails correctly. */ @SuppressWarnings("unused") @Test public void decorationFail() { final PDPModel defaultPDPModel = DefaultPDPModel.builder() .build(mock(DependencyProvider.class)); assertSame(defaultPDPModel, defaultPDPModel.self); final PDPModel forwardA = new ForwardingA(defaultPDPModel); assertSame(forwardA, defaultPDPModel.self); forwardA.register(new Depot(new Point(0, 0)) { @Override public void initRoadPDP(RoadModel pRoadModel, PDPModel pPdpModel) {} }); boolean fail = false; try { new ForwardingA(forwardA); } catch (final IllegalStateException e) { fail = true; } assertTrue(fail); boolean fail2 = false; try { new ForwardingA(defaultPDPModel); } catch (final IllegalStateException e) { fail2 = true; } assertTrue(fail2); }
/** * Setup an environment with three vehicles and three parcels. */ @Before public void setUp() { final DependencyProvider dp = mock(DependencyProvider.class); rm = PDPRoadModel.builder( RoadModelBuilders.plane() .withMaxSpeed(300d)) .withAllowVehicleDiversion(false) .build(dp); when(dp.get(RoadModel.class)).thenReturn(rm); pm = DefaultPDPModel.builder() .withTimeWindowPolicy(TimeWindowPolicies.TARDY_ALLOWED) .build(dp); mp = new TestModelProvider(new ArrayList<>( Arrays.<Model<?>>asList(rm, pm))); rm.registerModelProvider(mp); v1 = new TestVehicle(new Point(0, 1)); v2 = new TestVehicle(new Point(0, 2)); v3 = new TestVehicle(new Point(0, 3)); p1 = createParcel(new Point(3, 0), new Point(0, 3)); p2 = createParcel(new Point(6, 9), new Point(2, 9)); p3 = createParcel(new Point(2, 8), new Point(8, 2)); ss = rm.getSnapshot(); }
.build(dep);
@Test public void decoration() { final PDPModel defaultPDPModel = DefaultPDPModel.builder() .build(mock(DependencyProvider.class)); assertSame(defaultPDPModel, defaultPDPModel.self); final PDPModel forwardA = new ForwardingA(defaultPDPModel); assertSame(forwardA, defaultPDPModel.self); final PDPModel forwardB = new ForwardingB(forwardA); assertSame(forwardB, defaultPDPModel.self); final PDPModel forwardC = new ForwardingC(forwardB); assertSame(forwardC, forwardA.self); assertSame(forwardC, forwardB.self); assertSame(forwardC, forwardC.self); assertSame(forwardC, defaultPDPModel.self); }