package org.wahlzeit.model; import com.googlecode.objectify.ObjectifyService; import com.googlecode.objectify.Work; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.wahlzeit.testEnvironmentProvider.LocalDatastoreServiceTestConfigProvider; import org.wahlzeit.testEnvironmentProvider.RegisteredOfyEnvironmentProvider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** * Test class for {@link Guest}. */ public class GuestTest { @ClassRule public static RuleChain ruleChain = RuleChain. outerRule(new LocalDatastoreServiceTestConfigProvider()). around(new RegisteredOfyEnvironmentProvider()); @Test public void testNameGeneration() { int clientId = ClientManager.lastClientId.intValue(); assertNewGuestHasId(++clientId); assertNewGuestHasId(++clientId); // creation of user should not consume a next id ObjectifyService.run(new Work<Void>() { @Override public Void run() { new User("1337", "han", "star@wa.rs"); return null; } }); assertNewGuestHasId(++clientId); clientId -= 3; // test if GUEST_PREFIX == guest# testGetGuestFromUserManager("guest#" + ++clientId); testGetGuestFromUserManager(Guest.GUEST_PREFIX + ++clientId); testGetGuestFromUserManager(Guest.GUEST_PREFIX + ++clientId); } protected void assertNewGuestHasId(int id) { Guest testGuest = ObjectifyService.run(new Work<Guest>() { @Override public Guest run() { return new Guest(); } }); String userName = testGuest.getId(); String expectedUserName = Guest.GUEST_PREFIX + id; assertEquals(expectedUserName, userName); } protected void testGetGuestFromUserManager(String name) { assertNotNull(UserManager.getInstance().getClientById(name)); } }