TestLoggedInUser.java :  » Database-Persistance » objectdinner » info » gamlor » icoodb » web » business » Android Open Source

Android Open Source » Database Persistance » objectdinner 
objectdinner » info » gamlor » icoodb » web » business » TestLoggedInUser.java
package info.gamlor.icoodb.web.business;

import com.db4o.ObjectContainer;
import info.gamlor.icoodb.web.model.UserIdentity;
import info.gamlor.icoodb.web.testutils.InMemoryDB;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import javax.servlet.http.HttpSession;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.*;

/**
 * @author roman.stoffel@gamlor.info
 * @since 21.08.2010
 */
public class TestLoggedInUser {
    private LoggedInUser toTest;
    private HttpSession mockSession;
    private ObjectContainer db;
    private static final String USER_ID = "http://localhost/userId";

    @BeforeMethod
    public void setup(){
        this.mockSession = mock(HttpSession.class);
        when(mockSession.getAttribute(LoggedInUser.USER_IS_AUTHENTICATED)).thenReturn(null);
        this.db = InMemoryDB.newDB();
        this.toTest = new LoggedInUser(mockSession,db);
    }

    @Test
    public void isLoggedIn(){
        prepareLoggedIn();
        assertTrue(toTest.knowsUser());

    }

    @Test
    public void isNotLoggedIn(){
        assertFalse(toTest.knowsUser());
    }
    @Test
    public void emptyStringForNotLoggedIn(){
        assertEquals("",toTest.tryGetUserName());
    }
    @Test
    public void userName(){
        prepareLoggedIn();
        assertEquals(USER_ID,toTest.tryGetUserName());
    }


    @Test
    public void createsUserIfUnknown(){
        prepareLoggedIn();
        assertNotNull(toTest.loggedInUser());
        assertEquals(1,db.query(UserIdentity.class).size());
    }
    @Test
    public void returnsExistingUser(){
        prepareLoggedIn();
        db.store(new UserIdentity(USER_ID));
        assertNotNull(toTest.loggedInUser());
        assertEquals(1,db.query(UserIdentity.class).size());
    }
    @Test
    public void hasIdString(){
        prepareLoggedIn();
        assertEquals(USER_ID,toTest.loggedInUser().getIdentity());
    }
    
    @Test
    public void returnsAnonymousUser(){
        prepareLoggedIn("anonymous");
        UserIdentity identity = toTest.loggedInUser();
        assertNotNull(identity);
        assertEquals("anonymous",identity.getIdentity());
    }

    private void prepareLoggedIn(String userId) {
        when(mockSession.getAttribute(LoggedInUser.USER_IS_AUTHENTICATED)).thenReturn(userId);
    }

    private void prepareLoggedIn() {
        prepareLoggedIn(USER_ID);
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.