Sona Markosyan
3 years ago
2 changed files with 112 additions and 3 deletions
-
66src/main/java/hs/fulda/de/ci/exam/project/Itinerary.java
-
49src/test/java/hs/fulda/de/ci/exam/project/ItineraryTest.java
@ -1,10 +1,70 @@ |
|||||
package hs.fulda.de.ci.exam.project; |
package hs.fulda.de.ci.exam.project; |
||||
|
|
||||
import java.util.ArrayList; |
|
||||
|
|
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
public class Itinerary { |
public class Itinerary { |
||||
|
|
||||
public Itinerary(Airport start_airport, Airport final_airport) { |
|
||||
|
private Airport start_airport; |
||||
|
private Airport final_airport; |
||||
|
private Date creationDate; |
||||
|
|
||||
|
public Itinerary(Airport start_airport, Airport final_airport, Date creationDate) { |
||||
|
this.start_airport = start_airport; |
||||
|
this.final_airport = final_airport; |
||||
|
this.creationDate = creationDate; |
||||
|
} |
||||
|
|
||||
|
public List<String> getReservations(){ |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
public float makeDiscount(float fare, float discountRate){ |
||||
|
fare = fare - (fare * discountRate/100); |
||||
|
return fare; |
||||
|
} |
||||
|
|
||||
|
public boolean makePayment(String transactionType, Customer customer, float fare){ |
||||
|
if(customer.getItineraries().size() >= 2) { |
||||
|
fare = makeDiscount(fare, 10); |
||||
|
if(transactionType == "Credit"){ |
||||
|
fare = makeDiscount(fare, 15); |
||||
|
System.out.println("Your discount rate is 15%. The total amount of: " + fare + "Euro"); |
||||
|
return true; |
||||
|
} |
||||
|
else if(transactionType == "Cash" || transactionType == "Check") { |
||||
|
System.out.println("Your discount rate is 10%. The total amount of: " + fare + "Euro"); |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
return false; |
||||
} |
} |
||||
|
|
||||
|
public Airport getFinal_airport() { |
||||
|
return final_airport; |
||||
|
} |
||||
|
|
||||
|
public Airport getStart_airport() { |
||||
|
return start_airport; |
||||
|
} |
||||
|
|
||||
|
public Date getCreationDate() { |
||||
|
return creationDate; |
||||
|
} |
||||
|
|
||||
|
public void setCreationDate(Date creationDate) { |
||||
|
this.creationDate = creationDate; |
||||
|
} |
||||
|
|
||||
|
public void setFinal_airport(Airport final_airport) { |
||||
|
this.final_airport = final_airport; |
||||
|
} |
||||
|
|
||||
|
public void setStart_airport(Airport start_airport) { |
||||
|
this.start_airport = start_airport; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
} |
} |
@ -0,0 +1,49 @@ |
|||||
|
package hs.fulda.de.ci.exam.project; |
||||
|
|
||||
|
import org.junit.jupiter.api.Test; |
||||
|
import org.junit.jupiter.api.extension.ExtendWith; |
||||
|
import org.mockito.InjectMocks; |
||||
|
import org.mockito.Mock; |
||||
|
import static org.mockito.Mockito.*; |
||||
|
import org.mockito.junit.jupiter.MockitoExtension; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||
|
|
||||
|
@ExtendWith(MockitoExtension.class) |
||||
|
public class ItineraryTest { |
||||
|
|
||||
|
final Address address1 = new Address("Fuldaer str", "Fulda", "Hessen", "36037", "Germany"); |
||||
|
|
||||
|
@InjectMocks |
||||
|
final Customer person1 = new Customer("Max Mustermann", address1, "max.mustermann@gmail.com", "015147890206"); |
||||
|
|
||||
|
@Mock |
||||
|
private ItineraryRepository itineraryRepo; |
||||
|
|
||||
|
@Test |
||||
|
public void test_makePayment() { |
||||
|
ArrayList<Itinerary> itineraries = new ArrayList<>(); |
||||
|
|
||||
|
Airport airport_fr = new Airport("Fraport", address1, "1234"); |
||||
|
Airport airport_be = new Airport("Berlin", address1, "5678"); |
||||
|
Itinerary item1 = new Itinerary(airport_fr, airport_be, new Date()); |
||||
|
Itinerary item2 = new Itinerary(airport_be, airport_fr, new Date()); |
||||
|
itineraries.add(item1); |
||||
|
itineraries.add(item2); |
||||
|
|
||||
|
when(person1.getItineraries()).thenReturn(itineraries); |
||||
|
|
||||
|
boolean actualWithCredit = item1.makePayment("Credit", person1, 450); |
||||
|
boolean actualWithCash = item1.makePayment("Cash", person1, 450); |
||||
|
boolean actualWithCheck = item1.makePayment("Check", person1, 450); |
||||
|
boolean actualEmpty = item1.makePayment(" ", person1, 450); |
||||
|
|
||||
|
assertEquals(true, actualWithCash, "The Payment method is successfully chosen"); |
||||
|
assertEquals(true, actualWithCash, "The Payment method is successfully chosen"); |
||||
|
assertEquals(true, actualWithCredit, "The Payment method is successfully chosen"); |
||||
|
assertEquals(true, actualWithCheck, "The Payment method is successfully chosen"); |
||||
|
assertEquals(false, actualEmpty, "The Payment method is wrong"); |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue