@Override public void register(Object obj) { LOGGER.info("{} - register({})", clock.getCurrentTime(), obj); modelManager.register(obj); }
/** * Tests that registering an object with a type not associated to any model * fails. */ @Test public void registerFail() { boolean fail = false; try { emptyManager.register(new Object()); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
/** * A model can not be registered. */ @Test(expected = IllegalArgumentException.class) public void canNotRegisterModel() { emptyManager.register(RoadModelBuilders.staticGraph( new MultimapGraph<LengthData>()).build(mock(DependencyProvider.class))); }
/** * Test correct working with two models. */ @Test public void addWhenTwoModels() { final OtherFooModel model = new OtherFooModel(); final BarModel model2 = new BarModel(); final ModelManager mm = new ModelManager(ImmutableSet.of(model, model2)); mm.register(new Foo()); mm.register(new Bar()); mm.register(new Foo()); assertThat(model.calledRegister).isEqualTo(2); assertThat(model.calledTypes).isEqualTo(1); assertThat(model2.calledRegister).isEqualTo(1); assertThat(mm.getModels()).containsAllOf(model, model2); }
/** * Tests for unregistering a previously registered object. */ @Test @Ignore public void unregisterRegistered() { final OtherFooModel model = new OtherFooModel(); final BarModel model2 = new BarModel(); emptyManager.register(model); emptyManager.register(model2); final Foo foo = new Foo(); final Bar bar = new Bar(); emptyManager.register(foo); emptyManager.register(bar); emptyManager.unregister(foo); assertEquals(1, model.calledRegister); assertEquals(1, model2.calledRegister); assertEquals(1, model.callUnregister); }
/** * Tests that only known types can be registered successfully. */ @Test public void addOtherFooModel() { final OtherFooModel model = new OtherFooModel(); final ModelManager mm = new ModelManager(ImmutableSet.of(model)); mm.register(new Foo()); boolean fail = false; try { mm.register(new Bar()); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); assertEquals(1, model.calledRegister); assertEquals(1, model.calledTypes); }
mm.register(new InnerObject()); } catch (final IllegalArgumentException e) { fail = true;
/** * Tests that exception thrown by the broken model bubbles up. */ @Test(expected = RuntimeException.class) public void registerWithBrokenModel() { final ModelManager mm = new ModelManager(ImmutableSet.of( RoadModelBuilders.staticGraph( new MultimapGraph<LengthData>()) .build(mock(DependencyProvider.class)), new BrokenRoadModel(new MultimapGraph<LengthData>()))); mm.register(new RoadUser() { @Override public void initRoadUser(RoadModel model) {} }); }
mm.register(o); } catch (final IllegalArgumentException e) { fail = true;
mm.register(a1); assertEquals(asList(a1), mA.getRegisteredElements()); assertEquals(asList(a1), mAA.getRegisteredElements()); mm.register(a2); assertEquals(asList(a1, a2), mA.getRegisteredElements()); assertEquals(asList(a1, a2), mAA.getRegisteredElements()); boolean fail = false; try { mm.register(a3); } catch (final IllegalArgumentException e) { fail = true; mAA.setRegisterAction(ALLOW); mm.register(a1); assertEquals(asList(a1, a2, a3, a1), mA.getRegisteredElements()); assertEquals(asList(a1, a2, a3, a1), mAA.getRegisteredElements()); mm.register(b1); assertEquals(asList(b1), mB.getRegisteredElements()); assertEquals(asList(b1), mB2.getRegisteredElements()); mm.register(s1); assertEquals(asList(b1, s1), mB.getRegisteredElements()); assertEquals(asList(b1, s1), mB2.getRegisteredElements());