BAEL-2197: Initial Commit
This commit is contained in:
parent
05e1700fb7
commit
6460e73eb6
1
core-java-8/findItemsBasedOnValues/.gitignore
vendored
Normal file
1
core-java-8/findItemsBasedOnValues/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/bin/
|
@ -0,0 +1,114 @@
|
||||
package findItems;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.junit.Test;
|
||||
|
||||
public class FindItemsBasedOnValues {
|
||||
|
||||
static SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy");
|
||||
|
||||
public static void main(String[] args) throws ParseException {
|
||||
FindItemsBasedOnValues findItems = new FindItemsBasedOnValues();
|
||||
findItems.findItemsImpl();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findItemsImpl() throws ParseException {
|
||||
List<Client> expectedList = new ArrayList<Client>();
|
||||
Client expectedClient = new Client(1001, DATE_FORMAT.parse("01-02-2018"));
|
||||
expectedList.add(expectedClient);
|
||||
|
||||
List<Company> listOfCompanies = new ArrayList<Company>();
|
||||
List<Client> listOfClients = new ArrayList<Client>();
|
||||
populate(listOfCompanies, listOfClients);
|
||||
|
||||
List<Client> filteredList = listOfClients.stream()
|
||||
.filter(client -> listOfCompanies.stream()
|
||||
.anyMatch(company -> company.getType()
|
||||
.equals("eMart") && company.getProjectId()
|
||||
.equals(client.getProjectId()) && company.getStart()
|
||||
.after(client.getDate()) && company.getEnd()
|
||||
.before(client.getDate())))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
assertEquals(expectedClient.getProjectId(), filteredList.get(0)
|
||||
.getProjectId());
|
||||
assertEquals(expectedClient.getDate(), filteredList.get(0)
|
||||
.getDate());
|
||||
}
|
||||
|
||||
private void populate(List<Company> companyList, List<Client> clientList) throws ParseException {
|
||||
Company company1 = new Company(1001, DATE_FORMAT.parse("01-03-2018"), DATE_FORMAT.parse("01-01-2018"), "eMart");
|
||||
Company company2 = new Company(1002, DATE_FORMAT.parse("01-02-2018"), DATE_FORMAT.parse("01-04-2018"), "commerce");
|
||||
Company company3 = new Company(1003, DATE_FORMAT.parse("01-06-2018"), DATE_FORMAT.parse("01-02-2018"), "eMart");
|
||||
Company company4 = new Company(1004, DATE_FORMAT.parse("01-03-2018"), DATE_FORMAT.parse("01-06-2018"), "blog");
|
||||
|
||||
Collections.addAll(companyList, company1, company2, company3, company4);
|
||||
|
||||
Client client1 = new Client(1001, DATE_FORMAT.parse("01-02-2018"));
|
||||
Client client2 = new Client(1003, DATE_FORMAT.parse("01-04-2018"));
|
||||
Client client3 = new Client(1005, DATE_FORMAT.parse("01-07-2018"));
|
||||
Client client4 = new Client(1007, DATE_FORMAT.parse("01-08-2018"));
|
||||
|
||||
Collections.addAll(clientList, client1, client2, client3, client4);
|
||||
}
|
||||
}
|
||||
|
||||
class Company {
|
||||
Long projectId;
|
||||
Date start;
|
||||
Date end;
|
||||
String type;
|
||||
|
||||
public Company(long projectId, Date start, Date end, String type) {
|
||||
super();
|
||||
this.projectId = projectId;
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Long getProjectId() {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public Date getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public Date getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Client {
|
||||
Long projectId;
|
||||
Date date;
|
||||
|
||||
public Client(long projectId, Date date) {
|
||||
super();
|
||||
this.projectId = projectId;
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public Long getProjectId() {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user