import junit.framework.Assert;
import junit.framework.TestCase;

public class TransactionTest extends TestCase
{

// public static void main( String[] args )
// {
//  junit.swingui.TestRunner.run( TransactionTest.class );
// }

 public void testGetConfirmationNumber( )
 {
  int expected;
  int returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false );
  Item i2 = new Item( "Shrek 2 DVD", true );
  
  Transaction r = new Transaction( c, i1, 20.5, Transaction.SELL );
  
  expected = 100;
  returned = r.getConfirmationNumber();
  Assert.assertEquals( expected, returned ); 
  
  Transaction r2 = new Transaction( c, i2, 15, Transaction.SELL );
  expected = 101;
  returned = r2.getConfirmationNumber();
  Assert.assertEquals( expected, returned ); 
  
 }

 
 public void testGetUserName( )
 {
  String expected;
  String returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false );
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = "Mohamad";
  returned = r.getUser().getName();
  Assert.assertEquals( expected, returned );   
 }

 public void testGetUser( )
 {
  User expected;
  User returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false );
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = c;
  returned = r.getUser();
  Assert.assertEquals( expected, returned );   
 }
 
 public void testGetPrice( )
 {
  double expected;
  double returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false );
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = 10;
  returned = r.getPrice();
  Assert.assertEquals( expected, returned );   
 }
 
  public void testSetPrice( )
 {
  double expected;
  double returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false );
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = 10;
  returned = r.getPrice();
  Assert.assertEquals( expected, returned );
  
  r.setPrice(5.5);
  expected = 5.5;
  returned = r.getPrice();
  Assert.assertEquals( expected, returned );
 }
 
 public void testItemHere( )
 {
  Item expected;
  Item returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false);
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = i1;
  returned = r.getItem();
  Assert.assertEquals( expected, returned );   
 }

 public void testGetActive( )
 {
  boolean expected;
  boolean returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false);
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = true;
  returned = r.getActive();
  Assert.assertEquals( expected, returned );   
 }
 
 public void testSetActive( )
 {
  boolean expected;
  boolean returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false);
  
  Transaction r = new Transaction( c, i1, 10, Transaction.SELL );
  
  expected = true;
  returned = r.getActive();
  Assert.assertEquals( expected, returned );   
  
  r.setActive(false);
  expected = false;
  returned = r.getActive();
  Assert.assertEquals( expected, returned ); 
  
 }
 
 public void testGetType( )
 {
  int expected;
  int returned;
  
  User c = new User( "Mohamad", "meid", "iti1120a");
  Item i1 = new Item( "Harry Potter book", false);
  
  Transaction r = new Transaction( c, i1, 10, Transaction.BID );
  
  expected = Transaction.BID;
  returned = r.getType();
  Assert.assertEquals( expected, returned );   
 }
 
}
