package fr.umlv.fruits;

import static org.junit.Assert.*;

import org.junit.Test;

public class TicketTest {
  @Test(expected=IllegalArgumentException.class)
  public void testInvalidPrice() {
    Ticket ticket = new Ticket(-1);
  }
  
  @Test
  public void testEquals() {
    Ticket ticket1 = new Ticket(230);
    Ticket ticket2 = new Ticket(230);
    assertEquals(ticket1, ticket2);
  }
  
  @Test
  public void fruitWithTicket() {
    Ticket ticket = new Ticket(100);
    Fruit fruit1 = new Orange("France", ticket, 120);
    Fruit fruit2 = new Banana("France", ticket);
    assertEquals(ticket.getPrice(), fruit1.getPrice());
    assertEquals(ticket.getPrice(), fruit2.getPrice());
  }
  
  @Test
  public void fruitWithTicket2() {
    Fruit fruit1 = new Orange("France", null, 100);
    Fruit fruit2 = new Banana("France", null);
    Ticket ticket = new Ticket(150);
    fruit1.setTicket(ticket);
    fruit2.setTicket(ticket);
    assertEquals(ticket.getPrice(), fruit1.getPrice());
    assertEquals(ticket.getPrice(), fruit2.getPrice());
  }
  
  @Test
  public void orangeEquals() {
    Orange orange1 = new Orange("France", new Ticket(150), 100);
    Orange orange2 = new Orange("France", new Ticket(150), 100);
    assertEquals(orange1, orange2);
  }
  
  @Test
  public void bananaEquals() {
    Banana banana1 = new Banana("France", new Ticket(70));
    Banana banana2 = new Banana("France", new Ticket(70));
    assertEquals(banana1, banana2);
  }
}
