blob: 471409bda7885668cab1f1704e399f429b2e199b [file] [log] [blame]
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.gct.login;
import com.intellij.util.containers.HashMap;
import junit.framework.Assert;
import junit.framework.TestCase;
import java.util.Map;
/**
* Tests for {@link CredentialedUserRoster}
*/
public class CredentialedUserRosterTest extends TestCase {
private CredentialedUserRoster users;
CredentialedUser user1;
CredentialedUser user2;
CredentialedUser user3;
@Override
public void setUp() {
users = new CredentialedUserRoster();
user1 = new CredentialedUser("user1");
user2 = new CredentialedUser("user2");
user3 = new CredentialedUser("user3");
}
@Override
public void tearDown() {
users = null;
user1 = null;
user2 = null;
user3 = null;
}
/**
* Tests that {@link com.google.intellij.login.Users#addUser(CredentialedUser)}
* stores the proper users and currently manages the active user.
*/
public void testAddUser() {
Assert.assertEquals(0, users.numberOfUsers());
users.addUser(user1);
Assert.assertEquals(user1.getEmail(), users.getActiveUser().getEmail());
users.addUser(user2);
Assert.assertEquals(user2.getEmail(), users.getActiveUser().getEmail());
Assert.assertTrue(user2.isActive());
Assert.assertFalse(user1.isActive());
Map<String, CredentialedUser> allUsers = users.getAllUsers();
Assert.assertEquals(2, allUsers.size());
Assert.assertNotNull(allUsers.get(user1.getEmail()));
Assert.assertNotNull(allUsers.get(user2.getEmail()));
}
/**
* Tests that {@link com.google.intellij.login.Users#getActiveUser()}
* properly manages the active user so that the active user is either the last
* added user or the user that has explicitly requested to be active.
*/
public void testGetActiveUser() {
Assert.assertNull(users.getActiveUser());
users.addUser(user1);
Assert.assertNotNull(users.getActiveUser());
Assert.assertEquals(user1.getEmail(), users.getActiveUser().getEmail());
users.addUser(user2);
Assert.assertEquals(user2.getEmail(), users.getActiveUser().getEmail());
users.addUser(user3);
Assert.assertEquals(user3.getEmail(), users.getActiveUser().getEmail());
users.removeUser(user2.getEmail());
Assert.assertEquals("user3", users.getActiveUser().getEmail());
users.removeUser(users.getActiveUser().getEmail());
Assert.assertNull(users.getActiveUser());
boolean exceptionThrown = false;
try{
users.setActiveUser(user2.getEmail());
}
catch (IllegalArgumentException ex) {
exceptionThrown = true;
}
Assert.assertTrue(exceptionThrown);
users.setActiveUser(user1.getEmail());
Assert.assertTrue(user1.isActive());
}
/**
* Tests that {@link com.google.intellij.login.Users#getAllUsers()}.
*/
public void testGetAllUsers() {
Assert.assertEquals(0, users.getAllUsers().size());
users.addUser(user1);
Assert.assertEquals(1, users.getAllUsers().size());
users.addUser(user2);
users.addUser(user3);
Assert.assertEquals(3, users.getAllUsers().size());
users.addUser(user3);
Assert.assertTrue(users.removeUser(user1.getEmail()));
Assert.assertEquals(2, users.getAllUsers().size());
}
/**
* Tests {@link com.google.intellij.login.Users#isActiveUserAvailable()}.
*/
public void testIsActiveUserAvailable() {
Assert.assertFalse(users.isActiveUserAvailable());
users.addUser(user1);
Assert.assertTrue(users.isActiveUserAvailable());
users.addUser(user2);
users.addUser(user3);
Assert.assertTrue(users.isActiveUserAvailable());
users.removeUser(user2.getEmail());
Assert.assertEquals(user3.getEmail(), users.getActiveUser().getEmail());
users.removeUser(users.getActiveUser().getEmail());
Assert.assertNull(users.getActiveUser());
users.setActiveUser(user1.getEmail());
Assert.assertTrue(user1.isActive());
}
/**
* Tests {@link com.google.intellij.login.Users#numberOfUsers()}
*/
public void testNumberOfUsers() {
Assert.assertEquals(0, users.numberOfUsers());
users.addUser(user1);
Assert.assertEquals(1, users.numberOfUsers());
users.removeUser(user1.getEmail());
Assert.assertEquals(0, users.numberOfUsers());
users.addUser(user1);
users.addUser(user2);
Assert.assertEquals(2, users.numberOfUsers());
}
/**
* Tests {@link CredentialedUserRoster#removeActiveUser()}
*/
public void testRemoveActiveUser() {
Assert.assertNull(users.getActiveUser());
users.addUser(user1);
Assert.assertEquals(user1.getEmail(), users.getActiveUser().getEmail());
users.removeActiveUser();
Assert.assertNull(users.getActiveUser());
Assert.assertFalse(user1.isActive());
users.addUser(user2);
users.addUser(user3);
Assert.assertEquals(user3.getEmail(), users.getActiveUser().getEmail());
users.removeActiveUser();
Assert.assertNull(users.getActiveUser());
Assert.assertFalse(user3.isActive());
}
/**
* Tests {@link com.google.intellij.login.Users#removeUser()}
*/
public void testRemoveUser() {
Assert.assertFalse(users.removeUser(user1.getEmail()));
users.addUser(user1);
users.addUser(user2);
Assert.assertEquals(user2.getEmail(), users.getActiveUser().getEmail());
Assert.assertTrue(users.removeUser(user2.getEmail()));
Assert.assertEquals(1, users.numberOfUsers());
Assert.assertNull(users.getActiveUser());
}
/**
* Tests {@link com.google.intellij.login.Users#setActiveUser()}
*/
public void testSetActiveUser() {
users.addUser(user1);
users.addUser(user2);
users.addUser(user3);
Assert.assertEquals(user3.getEmail(), users.getActiveUser().getEmail());
users.setActiveUser(user1.getEmail());
Assert.assertEquals(user1.getEmail(), users.getActiveUser().getEmail());
boolean exceptionThrown = false;
try{
users.setActiveUser("noUser");
} catch (IllegalArgumentException ex) {
exceptionThrown = true;
}
Assert.assertTrue(exceptionThrown);
Assert.assertTrue(user1.isActive());
}
/**
* Tests {@link CredentialedUserRoster#setAllUsers(java.util.Map)}
*/
public void testSetAllUsers() {
users.addUser(user1);
Map<String, CredentialedUser> newUsers = new HashMap<String, CredentialedUser>();
newUsers.put(user2.getEmail(), user2);
newUsers.put(user3.getEmail(), user3);
users.setAllUsers(newUsers);
Map<String, CredentialedUser> setUsers = users.getAllUsers();
Assert.assertEquals(2, setUsers.size());
Assert.assertFalse(setUsers.containsKey(user1.getEmail()));
Assert.assertTrue(setUsers.containsKey(user2.getEmail()));
Assert.assertTrue(setUsers.containsKey(user3.getEmail()));
}
}