package xapi.test.gwt.model;
import xapi.annotation.model.GetterFor;
import xapi.model.X_Model;
import xapi.model.user.ModelUser;
import xapi.test.Assert;
import com.google.gwt.junit.client.GWTTestCase;
public class ModelGwtTest extends GWTTestCase{
private static final String EMAIL = "test@test.com";
private static final String FIRST_NAME = "Admin";
private static final String LAST_NAME = "Istrator";
private static final String KEY = "myProp";
private static final String VALUE = "myVal";
public static interface ModelGroup extends ModelUser {
@GetterFor
String groupName();
void setGroupName(String groupName);
ModelUser[] getAdministrators();
ModelUser[] getUsers();
ModelGroup setAdministrators(ModelUser[] users);
void setUsers(ModelUser[] users);
}
@Override
public String getModuleName() {
return "xapi.X_Uber";
}
public void testUserModel() {
ModelUser user = X_Model.create(ModelUser.class);
userAssertions(user);
}
private void userAssertions(ModelUser user) {
user.setEmail(EMAIL);
Assert.assertEquals(EMAIL, user.getEmail());
user.setFirstName(FIRST_NAME);
Assert.assertEquals(FIRST_NAME, user.getFirstName());
user.setLastName(LAST_NAME);
Assert.assertEquals(LAST_NAME, user.getLastName());
user.setProperty(KEY, VALUE);
Assert.assertEquals(user.getProperty(KEY), VALUE);
}
private void groupAssertions(ModelGroup group) {
userAssertions(group);
ModelUser [] users = new ModelUser[] {
X_Model.create(ModelUser.class),
X_Model.create(ModelUser.class),
X_Model.create(ModelGroup.class)
};
group.setUsers(users);
Assert.assertArrayEquals(group.getUsers(), users);
}
public void testGroupModel() {
ModelGroup group = X_Model.create(ModelGroup.class);
groupAssertions(group);
}
}