/* * Created on 26/01/2005 * Created by Paul Duran * Copyright (C) 2004 Aelitis, All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * AELITIS, SARL au capital de 30,000 euros * 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France. * */ package org.gudy.azureus2.ui.console.multiuser; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import junit.framework.TestCase; import org.gudy.azureus2.ui.console.UserProfile; /** * test class for the UserManager object * @author pauld */ public class TestUserManager extends TestCase { private InMemoryUserManager manager; private UserProfile profile1; private UserProfile profile2; /* * @see TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); manager = new InMemoryUserManager(null); profile1 = new UserProfile(); profile1.setUsername("myuser1"); profile1.setPassword("mypassword"); manager.addUser(profile1); profile2 = new UserProfile(); profile2.setUsername("myuser2"); profile2.setPassword("zigzag"); profile2.setUserType(UserProfile.USER); manager.addUser(profile2); } /* * @see TestCase#tearDown() */ protected void tearDown() throws Exception { super.tearDown(); } public void testLoadSave() { ByteArrayOutputStream out = new ByteArrayOutputStream(); manager.save(out); System.out.println("Saved to: " + new String(out.toByteArray())); ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); InMemoryUserManager newManager = new InMemoryUserManager(null); newManager.load(in); UserProfile profile3 = new UserProfile(); profile3.setUserType(UserProfile.GUEST); profile3.setUsername("user3"); profile3.setPassword("whatever"); assertTrue( manager.getUsers().contains(profile1 ) ); assertTrue( manager.getUsers().contains(profile2 ) ); assertFalse( manager.getUsers().contains(profile3 ) ); assertTrue( newManager.getUsers().contains(profile1 ) ); assertTrue( newManager.getUsers().contains(profile2 ) ); assertFalse( newManager.getUsers().contains(profile3 ) ); } public void testAuthenticate() { assertEquals( "verify authentication succeeds", profile1, manager.authenticate("myuser1", "mypassword")); assertNull( "verify authentication fails", manager.authenticate("myuser1", "mypassword_shouldfail")); } private static final class InMemoryUserManager extends UserManager { public InMemoryUserManager(String fileName) { super(fileName); } public void save(OutputStream out) { doSave( out ); } public void load(InputStream in) { doLoad( in ); } } }