SerialisationFactory { public void addSerialisers(final Serialiser... newSerialisers) { if (null != newSerialisers) { for (final Serialiser newSerialiser : newSerialisers) { if (!serialiserAlreadyinList(newSerialiser)) { serialisers.add(newSerialiser); } } } } SerialisationFactory();  SerialisationFactory(final Serialiser... serialisers); List<Serialiser> getSerialisers(); void addSerialisers(final Serialiser... newSerialisers); Serialiser getSerialiser(final Class<?> objClass); Serialiser getSerialiser(final Class<?> objClass, final boolean preserveOrder, final boolean consistentSerialiser);  }
@Test public void testAddSerialisers() throws SerialisationException { final Serialiser[] serialisers = new Serialiser[]{ new RawDateSerialiser(), new RawDoubleSerialiser(), new RawFloatSerialiser() }; final SerialisationFactory factory = new SerialisationFactory(serialisers); final Class<?> clazz = String.class; factory.addSerialisers(new StringSerialiser()); Serialiser serialiser = factory.getSerialiser(clazz); assertTrue(serialiser.canHandle(clazz)); assertEquals(StringSerialiser.class, serialiser.getClass()); }