Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package com.kodilla.good.patterns.flights;

public class Flight {
private final int flightNumber;
private final String airportForDeparture;
private final String airportForArrival;

public Flight(int flightNumber, String airportForDeparture, String airportForArrival) {
this.flightNumber = flightNumber;
this.airportForDeparture = airportForDeparture;
this.airportForArrival = airportForArrival;
}

public int getFlightNumber() {
return flightNumber;
}

public String getAirportForDeparture() {
return airportForDeparture;
}

public String getAirportForArrival() {
return airportForArrival;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Flight flight = (Flight) o;

if (flightNumber != flight.flightNumber) return false;
if (!airportForDeparture.equals(flight.airportForDeparture)) return false;
return airportForArrival.equals(flight.airportForArrival);
}

@Override
public int hashCode() {
int result = flightNumber;
result = 31 * result + airportForDeparture.hashCode();
result = 31 * result + airportForArrival.hashCode();
return result;
}

@Override
public String toString() {
return "Flight{" +
"flightNumber=" + flightNumber +
", airportForDeparture='" + airportForDeparture + '\'' +
", airportForArrival='" + airportForArrival + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.kodilla.good.patterns.flights;

import java.util.List;

public interface FlightDb {

List<Flight> getFlights();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.kodilla.good.patterns.flights;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class FlightsApp {
private FlightDb flightDb;

public FlightsApp(FlightDb flightDb) {
this.flightDb = flightDb;
}

public List<Flight> flightsFrom(String airportForDeparture) {
return flightDb.getFlights().stream()
.filter(f -> f.getAirportForDeparture().equals(airportForDeparture))
.collect(Collectors.toList());
}

public List<Flight> flightsTo(String airportForArrival) {
return flightDb.getFlights().stream()
.filter(f -> f.getAirportForArrival().equals(airportForArrival))
.collect(Collectors.toList());
}

public List<Flight> flightsThrough(String airportToFlyThrough) {
List<String> listFlightsEndingIn = flightDb.getFlights().stream()
.filter(f -> f.getAirportForArrival().equals(airportToFlyThrough))
.map(f -> f.getAirportForDeparture())
.collect(Collectors.toList());

List<String> listFlightsStartingIn = flightDb.getFlights().stream()
.filter(f -> f.getAirportForDeparture().equals(airportToFlyThrough))
.map(f -> f.getAirportForArrival())
.collect(Collectors.toList());

List<Flight> flightsThroughAirportIn = new ArrayList<>();

for(String airportForDeparture : listFlightsEndingIn) {
for(String airportForArrival : listFlightsStartingIn) {
flightsThroughAirportIn.add(new Flight(0, airportForDeparture, airportForArrival));
}
}
return flightsThroughAirportIn;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.kodilla.good.patterns.flights;

import java.util.ArrayList;
import java.util.List;

public class FlightsList implements FlightDb {
@Override
public List<Flight> getFlights() {
List<Flight> flightsList = new ArrayList<>();
flightsList.add(new Flight(14739, "Warsaw", "LA"));
flightsList.add(new Flight(22033, "LA", "Berlin"));
flightsList.add(new Flight(44467, "Paris", "Moscow"));
flightsList.add(new Flight(50902, "Moscow", "LA"));
flightsList.add(new Flight(14002, "Warsaw", "Moscow"));
flightsList.add(new Flight(17099, "Paris", "Warsaw"));

return flightsList;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.kodilla.good.patterns.flights;

import org.junit.Assert;
import org.junit.Test;

public class FlightsTestSuite {

@Test
public void testFlightsFrom() {
// Given
FlightsList flightsList = new FlightsList();
FlightsApp flightsApp = new FlightsApp(flightsList);

// When
int numberOfFlightsFromWarsaw = flightsApp.flightsFrom("Warsaw").size();
int numberOfFlightsFromLa = flightsApp.flightsFrom("LA").size();

// Then
Assert.assertEquals(2, numberOfFlightsFromWarsaw);
Assert.assertEquals(1, numberOfFlightsFromLa);
}

@Test
public void testFlightsTo() {
// Given
FlightsList flightsList = new FlightsList();
FlightsApp flightsApp = new FlightsApp(flightsList);

// When
int numberOfFlightsToMoscow = flightsApp.flightsTo("Moscow").size();
int numberOfFlightsToWarsaw = flightsApp.flightsTo("Warsaw").size();

// Then
Assert.assertEquals(2, numberOfFlightsToMoscow);
Assert.assertEquals(1, numberOfFlightsToWarsaw);
}

@Test
public void TestFlightsThrough() {
// Given
FlightsList flightsList = new FlightsList();
FlightsApp flightsApp = new FlightsApp(flightsList);

// When
int numberOfFlightsThroughLa = flightsApp.flightsThrough("LA").size();

// Then
Assert.assertEquals(2, numberOfFlightsThroughLa);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.kodilla.patterns.food2door;

public class ExtraFoodShop implements ProductProcessor {

@Override
public boolean process() {
System.out.println("Lorem ipsum dolor");
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.kodilla.patterns.food2door;

public class GlutenFreeShop implements ProductProcessor {

@Override
public boolean process() {
System.out.println("Lorem ipsum dolor");
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.kodilla.patterns.food2door;

public class HealthyShop implements ProductProcessor {

@Override
public boolean process() {
System.out.println("Lorem ipsum dolor");
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.kodilla.patterns.food2door;

public interface ProductProcessor {

boolean process();
}