@Test public void alwaySetFieldPolicy() throws ModelFactoryException { modelFactory.addPolicy(new SkipReferenceFieldPolicy("username", User.class)); User user1 = modelFactory.createModel(User.class); User user2 = modelFactory.createModel(user1); assertNotSame(user1.getUsername(), user2.getUsername()); assertEquals(user1.getEmails(), user2.getEmails()); }
@Test public void singletonPolicyWithClass() throws ModelFactoryException { modelFactory.addPolicy(new MappedSingletonPolicy(Driver.class)); Car car1 = modelFactory.createModel(Car.class); Car car2 = modelFactory.createModel(Car.class); Car car3 = modelFactory.createModel(Car.class); Driver driver = car1.getDriver(); assertEquals(car2.getDriver(), driver); assertEquals(car3.getDriver(), driver); }
@Test public void singletonPolicyWithModel() throws ModelFactoryException { Driver driver = modelFactory.createModel(Driver.class); modelFactory.addPolicy(new MappedSingletonPolicy(driver)); Car car1 = modelFactory.createModel(Car.class); Car car2 = modelFactory.createModel(Car.class); Car car3 = modelFactory.createModel(Car.class); assertEquals(car1.getDriver(), driver); assertEquals(car2.getDriver(), driver); assertEquals(car3.getDriver(), driver); } }