@Theory
  public void test(Fixture fixture1, Fixture fixture2) {
    // 【テスト条件のセットアップ】
    if (fixture1 != null) {
      sut.addRental(fixture1.rental);
    }
    if (fixture2 != null) {
      sut.addRental(fixture2.rental);
    }

    // 【テスト実施】
    String result = sut.statement();

    // 【テスト結果の検証】
    // 期待値作成
    String expected = "Rental Record for " + CUSTOMER_NAME + "\n";
    expected += buildAmountPartString(fixture1);
    expected += buildAmountPartString(fixture2);
    double totalAmount = calcTotalAmount(fixture1, fixture2);
    expected += "Amount owed is " + String.valueOf(totalAmount) + "\n";
    int frequentREnterPoints = calcPoint(fixture1, fixture2);
    expected += "You earned " + String.valueOf(frequentREnterPoints) + " frequent renter points";

    assertThat(result, is(expected));
  }
 @Test
 public void testWithNoMovie_ShouldGenerateEmptyStatement() {
   assertEquals(
       "Rental Record for Ryan\n"
           + "Amount owed is 0.0\n"
           + "You earned 0 frequent renters points",
       customer.statement());
 }
 @Test
 public void testWithOneNewReleaseMovie_ShouldGenerateSimpleStatement() {
   Movie ironman = new Movie("Iron Man 2", Movie.NEW_RELEASE);
   Rental sunday = new Rental(ironman, 2);
   customer.addRental(sunday);
   assertEquals(
       "Rental Record for Ryan\n"
           + "\tIron Man 2\t6.0\n"
           + "Amount owed is 6.0\n"
           + "You earned 2 frequent renters points",
       customer.statement());
 }
 @Test
 public void testWithOneChildrensMovie_ShouldGenerateSimpleStatement() {
   Movie irongiant = new Movie("Iron Giant", Movie.CHILDRENS);
   Rental sunday = new Rental(irongiant, 2);
   customer.addRental(sunday);
   assertEquals(
       "Rental Record for Ryan\n"
           + "\tIron Giant\t1.5\n"
           + "Amount owed is 1.5\n"
           + "You earned 1 frequent renters points",
       customer.statement());
 }
 @Test
 public void testWithOneRegularMovie_ShouldGenerateSimpleStatement() {
   Movie ironman = new Movie("Iron Man", Movie.REGULAR);
   Rental sunday = new Rental(ironman, 2);
   customer.addRental(sunday);
   assertEquals(
       "Rental Record for Ryan\n"
           + "\tIron Man\t2.0\n"
           + "Amount owed is 2.0\n"
           + "You earned 1 frequent renters points",
       customer.statement());
 }
 @Test
 public void testWithOneOfEachTypeOfMovieFor3Days_ShouldGenerateComplexStatement() {
   Movie ironman = new Movie("Iron Man", Movie.REGULAR);
   customer.addRental(new Rental(ironman, 3));
   Movie irongiant = new Movie("Iron Giant", Movie.CHILDRENS);
   customer.addRental(new Rental(irongiant, 3));
   Movie ironman2 = new Movie("Iron Man 2", Movie.NEW_RELEASE);
   customer.addRental(new Rental(ironman2, 3));
   assertEquals(
       "Rental Record for Ryan\n"
           + "\tIron Man\t3.5\n"
           + "\tIron Giant\t1.5\n"
           + "\tIron Man 2\t9.0\n"
           + "Amount owed is 14.0\n"
           + "You earned 4 frequent renters points",
       customer.statement());
 }