/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.sso.identity.identifier;
import junit.framework.TestCase;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpSession;
import com.jinhe.tss.core.exception.UserIdentificationException;
import com.jinhe.tss.core.sso.AnonymousOperator;
import com.jinhe.tss.core.sso.IUserIdentifier;
import com.jinhe.tss.core.sso.IdentityCard;
import com.jinhe.tss.core.sso.appserver.AppServer;
import com.jinhe.tss.core.sso.context.Context;
import com.jinhe.tss.core.sso.context.RequestContext;
import com.jinhe.tss.core.sso.identifier.AnonymousUserIdentifier;
import com.jinhe.tss.core.sso.identity.MockAppServerStorer;
import com.jinhe.tss.core.sso.identity.MockApplicationContext;
import com.jinhe.tss.core.sso.identity.MockOnlineUserManagerFactory;
import com.jinhe.tss.core.sso.online.OnlineUserManagerFactory;
public class AnonymousUserIdentifierTest extends TestCase {
private IUserIdentifier identifier;
private MockHttpServletRequest request;
protected void setUp() throws Exception {
super.setUp();
MockOnlineUserManagerFactory.init();
AppServer server = new AppServer();
server.setCode("Core");
server.setName("Core");
server.setUserDepositoryCode("tss");
MockAppServerStorer storer = new MockAppServerStorer();
storer.putAppServer("Core", server);
Context.initApplicationContext(new MockApplicationContext(storer, "Core"));
request = new MockHttpServletRequest();
request.setCharacterEncoding("GBK");
request.setSession(new MockHttpSession());
Context.initRequestContext(request);
identifier = new AnonymousUserIdentifier();
}
protected void tearDown() throws Exception {
super.tearDown();
identifier = null;
request = null;
}
/** Test method for {@link com.jinhe.tss.core.sso.identifier.BaseUserIdentifier#identify()}. */
public final void testIdentify4Ok() {
request.addHeader(RequestContext.ANONYMOUS_REQUEST, "true"); // 允许匿名访问
IdentityCard card = null;
try {
card = identifier.identify();
} catch (UserIdentificationException e) {
fail("UserIdentificationException");
}
assertNotNull(card);
assertEquals(AnonymousOperator.anonymous.getUserName(), card.getUserName());
assertTrue(OnlineUserManagerFactory.getManager().isOnline(card.getToken()));
}
/** Test method for {@link com.jinhe.tss.core.sso.identifier.BaseUserIdentifier#identify()}. */
public final void testIdentify4Fail() {
IdentityCard card = null;
try {
card = identifier.identify();
fail("应该发生异常,但没有发生");
} catch (UserIdentificationException e) {
assertTrue(true);
}
assertNull(card);
}
}