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