package com.apress.progwt.server.service.impl;
import org.apache.log4j.Logger;
import org.openid4java.discovery.DiscoveryException;
import org.openid4java.discovery.UrlIdentifier;
import org.springframework.test.AssertThrows;
import com.apress.progwt.client.domain.User;
import com.apress.progwt.client.exception.SiteException;
import com.apress.progwt.server.dao.SchoolDAO;
import com.apress.progwt.server.dao.UserDAO;
import com.apress.progwt.server.service.SchoolService;
import com.apress.progwt.server.service.UserService;
public class UserServiceImplTest extends
AbstractServiceTestWithTransaction {
private static final Logger log = Logger
.getLogger(UserServiceImplTest.class);
private static final int PROCESS_TYPES = 8;
private static final int RATING_TYPES = 5;
private SchoolDAO schoolDAO;
private UserDAO userDAO;
private SchoolService schoolService;
private UserService userService;
@Override
protected void onSetUp() throws Exception {
super.onSetUp();
clean();
}
private void clean() {
// TODO Auto-generated method stub
}
// public void testCreateUser() throws UsernameNotFoundException,
// SiteException {
//
// userService.createUser("username", "pass", "email", false);
//
// User saved = userService.getUserWithNormalization("username");
//
// assertEquals(PROCESS_TYPES, saved.getProcessTypes().size());
//
// for (ProcessType pType : saved.getProcessTypes()) {
// assertNotNull(pType);
// }
//
// assertEquals(RATING_TYPES, saved.getRatingTypes().size());
//
// for (RatingType rType : saved.getRatingTypes()) {
// assertNotNull(rType);
// }
// }
//
// public void testFetch() throws UsernameNotFoundException,
// SiteException {
//
// userService.createUser("username", "pass", "email", false);
//
// User saved = userService.getUserWithNormalization("username");
// School dart = schoolService.getSchoolDetails("Dartmouth College");
//
// saved.addRanked(new Application(dart));
// userDAO.save(saved);
//
// assertEquals(PROCESS_TYPES, saved.getProcessTypes().size());
//
// for (ProcessType pType : saved.getProcessTypes()) {
// assertNotNull(pType);
// }
//
// User fetched = userService.getUserByNicknameFullFetch("username");
//
// assertEquals(PROCESS_TYPES, fetched.getProcessTypes().size());
// assertEquals(1, fetched.getSchoolRankings().size());
//
// User fetched2 = userService.getUserByNicknameFullFetch("test");
//
// assertEquals(PROCESS_TYPES, fetched2.getProcessTypes().size());
// assertEquals(RATING_TYPES, fetched2.getRatingTypes().size());
// assertEquals(1, fetched2.getSchoolRankings().size());
// assertEquals(4, fetched2.getSchoolRankings().get(0).getProcess()
// .size());
// }
public void testOpenIDNormalize() throws DiscoveryException {
assertEquals("http://factoryjoe.com/", UrlIdentifier.normalize(
"http://factoryjoe.com").toExternalForm());
assertEquals("http://factoryjoe.com/", UrlIdentifier.normalize(
"http://factoryjoe.com/").toExternalForm());
assertEquals("http://www.factoryjoe.com/", UrlIdentifier
.normalize("http://www.factoryjoe.com").toExternalForm());
// show that current is unsatisfactory
new AssertThrows(IllegalArgumentException.class) {
public void test() throws Exception {
assertEquals("http://factoryjoe.com/", UrlIdentifier
.normalize("factoryjoe.com").toExternalForm());
}
};
}
public void testNormalizeUrl() throws SiteException {
System.out.println("testNormalizeUrl");
assertEquals("http://foo.com/", UserServiceImpl
.normalizeUrl("foo.com"));
assertEquals("http://foo.com/", UserServiceImpl
.normalizeUrl("http://foo.com"));
assertEquals("https://foo.com/", UserServiceImpl
.normalizeUrl("https://foo.com"));
assertEquals("http://foo.com/bar", UserServiceImpl
.normalizeUrl("foo.com/bar"));
assertEquals("http://foo.com/bar", UserServiceImpl
.normalizeUrl("http://foo.com/bar"));
assertEquals("http://foo.com/", UserServiceImpl
.normalizeUrl("http://foo.com/"));
assertEquals("https://foo.com/", UserServiceImpl
.normalizeUrl("https://foo.com/"));
assertEquals("https://foo.com/bar", UserServiceImpl
.normalizeUrl("https://foo.com/bar"));
AssertThrows at = new AssertThrows(SiteException.class) {
@Override
public void test() throws Exception {
assertNull(UserServiceImpl.normalizeUrl(""));
}
};
at = new AssertThrows(SiteException.class) {
@Override
public void test() throws Exception {
assertNull(UserServiceImpl.normalizeUrl("http://"));
}
};
at = new AssertThrows(SiteException.class) {
@Override
public void test() throws Exception {
assertNull(UserServiceImpl.normalizeUrl(null));
}
};
}
public void skip_testNormalizeURL() throws SiteException {
assertEquals("http://foo.com/%E8%8D%89", UserServiceImpl
.normalizeUrl("foo.com/\u8349"));
assertEquals("http://foo.com/%E8%8D%89", UserServiceImpl
.normalizeUrl("http://foo.com/\u8349"));
assertEquals("http://xn--vl1a.com/", UserServiceImpl
.normalizeUrl("\u8349.com"));
assertEquals("http://xn--vl1a.com/", UserServiceImpl
.normalizeUrl("http://\u8349.com"));
assertEquals("http://xn--vl1a.com/", UserServiceImpl
.normalizeUrl("\u8349.com/"));
assertEquals("http://xn--vl1a.com/", UserServiceImpl
.normalizeUrl("http://\u8349.com/"));
assertEquals("http://xn--vl1a.com/%E8%8D%89", UserServiceImpl
.normalizeUrl("\u8349.com/\u8349"));
assertEquals("http://xn--vl1a.com/%E8%8D%89", UserServiceImpl
.normalizeUrl("http://\u8349.com/\u8349"));
}
public void testToken() throws SiteException {
String nullT = userService.getToken(null);
User fetched2 = userService.getUserByNicknameFullFetch("test");
String userT = userService.getToken(fetched2);
assertNotNull(nullT);
assertNotNull(userT);
assertNotSame(nullT, userT);
System.out.println("t: " + nullT);
System.out.println("u: " + userT);
}
public void setSchoolService(SchoolService schoolService) {
this.schoolService = schoolService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public void setSchoolDAO(SchoolDAO schoolDAO) {
this.schoolDAO = schoolDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}