/** * @return A new {@link ModelManager} instance. */ public ModelManager build() { return new ModelManager(resolver.resolve()); } }
/** * Creates an empty model manager. */ @Before public void setUp() { emptyManager = new ModelManager(ImmutableSet.<Model<?>>of()); }
/** * Checks if a faulty model is detected and rejected. */ @SuppressWarnings("unused") @Test public void addFaultyModel() { final ModelA model = new ModelA(); model.setSupportedType(null); boolean fail = false; try { new ModelManager(ImmutableSet.of(model)); } catch (final NullPointerException e) { fail = true; } assertThat(fail).isTrue(); }
final ModelManager mm = new ModelManager(ImmutableSet.of( new Model<InnerObject>() { @Override
/** * 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 that unregistering an not registered object fails. */ @Test public void unregisterFailNotRegisteredObject() { final ModelManager mm = new ModelManager( ImmutableSet.of( RoadModelBuilders.staticGraph(new MultimapGraph<LengthData>()) .build(mock(DependencyProvider.class)), RoadModelBuilders.staticGraph(new MultimapGraph<LengthData>()) .build(mock(DependencyProvider.class)))); boolean fail = false; try { mm.unregister(new RoadUser() { @Override public void initRoadUser(RoadModel model) {} }); } catch (final IllegalArgumentException e) { fail = true; } assertTrue(fail); }
/** * 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) {} }); }
public void registerAndUnregisterFail() { final OtherFooModel model = new OtherFooModel(); final ModelManager mm = new ModelManager(ImmutableSet.of(model)); final Object o = new Object();
/** * Tests that an exception thrown by a model during unregister bubbles up. */ @Test public void unregisterWithBrokenModel() { final ModelManager mm = new ModelManager( ImmutableSet.of(RoadModelBuilders.staticGraph( new MultimapGraph<LengthData>()) .build(mock(DependencyProvider.class)), new BrokenRoadModel(new MultimapGraph<LengthData>()))); boolean fail = false; try { mm.unregister(new RoadUser() { @Override public void initRoadUser(RoadModel model) {} }); } catch (final RuntimeException e) { fail = true; } assertThat(fail).isTrue(); }
/** * 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); }
final ModelC mC = new ModelC(); final ModelManager mm = new ModelManager(ImmutableSet.<Model<?>>of( mA, mAA, mB, mB2, mBB, mBBB, mSB, mC));