package in.partake.model.dto;
import in.partake.base.TimeUtil;
import in.partake.model.fixture.TestDataProvider;
import in.partake.model.fixture.impl.UserTestDataProvider;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class UserTest extends AbstractPartakeModelTest<User> {
private User[] samples;
UserTestDataProvider provider = new UserTestDataProvider();
@Before
public void createSampleData() {
samples = new User[] {
new User("id1", "screenName1", "http://www.example.com/1", TimeUtil.getCurrentDateTime(), null, false),
new User("id2", "screenName2", "http://www.example.com/2", TimeUtil.getCurrentDateTime(), null, false),
new User("id3", "screenName3", "http://www.example.com/3", TimeUtil.getCurrentDateTime(), null, false),
};
}
@Test
public void testCopyConstructor() {
for (User source : samples) {
Assert.assertEquals(source, new User(source));
}
for (User lhs : samples) {
for (User rhs : samples) {
if (lhs == rhs) { continue; }
Assert.assertFalse(lhs.equals(rhs));
}
}
}
@Test
public void testToJSONFromJSON() {
User user = new User("id1", "screenName1", "http://www.example.com/1", TimeUtil.getCurrentDateTime(), null, false);
Assert.assertEquals(user, new User(user.toJSON()));
}
@Override
protected TestDataProvider<User> getTestDataProvider() {
return provider;
}
@Override
protected User copy(User t) {
return new User(t);
}
}