Package org.gudy.azureus2.ui.console.multiuser

Source Code of org.gudy.azureus2.ui.console.multiuser.TestUserManager$InMemoryUserManager

/*
* 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 );
    }
  }
}
TOP

Related Classes of org.gudy.azureus2.ui.console.multiuser.TestUserManager$InMemoryUserManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.