From 2bdcc9c1fc0a1d86b03eab13ec6c78ae623c8b25 Mon Sep 17 00:00:00 2001
From: rvsathe <38076470+rvsathe@users.noreply.github.com>
Date: Mon, 8 Nov 2021 02:45:45 +0530
Subject: [PATCH] changes for BAEL 5164 (#11364)
* BAEL 4293 correcting the unit test file ame.
* changes for BAEL 5164
* added maven compiler properties for fixing compilation issues.
* making BAEL 5164 java 8 compatible.
---
.../core-java-collections-maps-4/pom.xml | 79 +++---
.../com/baeldung/nestedhashmaps/Address.java | 32 +++
.../com/baeldung/nestedhashmaps/Employee.java | 43 ++++
.../com/baeldung/nestedhashmaps/MapsUtil.java | 57 ++++
.../NestedHashMapExamplesClass.java | 118 +++++++++
.../NestedHashMapExamplesClassUnitTest.java | 243 ++++++++++++++++++
6 files changed, 543 insertions(+), 29 deletions(-)
create mode 100644 core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Address.java
create mode 100644 core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Employee.java
create mode 100644 core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/MapsUtil.java
create mode 100644 core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClass.java
create mode 100644 core-java-modules/core-java-collections-maps-4/src/test/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClassUnitTest.java
diff --git a/core-java-modules/core-java-collections-maps-4/pom.xml b/core-java-modules/core-java-collections-maps-4/pom.xml
index 1835e3ceac..93ec782c94 100644
--- a/core-java-modules/core-java-collections-maps-4/pom.xml
+++ b/core-java-modules/core-java-collections-maps-4/pom.xml
@@ -1,34 +1,55 @@
- 4.0.0
- core-java-collections-maps-4
- 0.1.0-SNAPSHOT
- core-java-collections-maps-4
- jar
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ core-java-collections-maps-4
+ 0.1.0-SNAPSHOT
+ core-java-collections-maps-4
+ jar
-
- com.baeldung.core-java-modules
- core-java-modules
- 0.0.1-SNAPSHOT
- ../pom.xml
-
+
+ com.baeldung.core-java-modules
+ core-java-modules
+ 0.0.1-SNAPSHOT
+ ../pom.xml
+
+
+
+ UTF-8
+ 1.8
+ 1.8
+
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.0.0-M5
-
-
- !performance
-
-
-
-
-
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.hamcrest
+ hamcrest-all
+ 1.3
+ test
+
+
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M5
+
+
+ !performance
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Address.java b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Address.java
new file mode 100644
index 0000000000..410758405e
--- /dev/null
+++ b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Address.java
@@ -0,0 +1,32 @@
+package com.baeldung.nestedhashmaps;
+
+public class Address {
+
+ private Integer addressId;
+ private String addressLocation;
+
+ public Address() {
+ }
+
+ public Address(Integer addressId, String addressLocation) {
+ this.addressId = addressId;
+ this.addressLocation = addressLocation;
+ }
+
+ public Integer getAddressId() {
+ return addressId;
+ }
+
+ public void setAddressId(Integer addressId) {
+ this.addressId = addressId;
+ }
+
+ public String getAddressLocation() {
+ return addressLocation;
+ }
+
+ public void setAddressLocation(String addressLocation) {
+ this.addressLocation = addressLocation;
+ }
+
+}
diff --git a/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Employee.java b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Employee.java
new file mode 100644
index 0000000000..2ab54ff17c
--- /dev/null
+++ b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/Employee.java
@@ -0,0 +1,43 @@
+package com.baeldung.nestedhashmaps;
+
+public class Employee {
+
+ private Integer employeeId;
+ private Address address;
+ private String employeeName;
+
+ public Employee() {
+ super();
+ }
+
+ public Employee(Integer employeeId, Address address, String employeeName) {
+ this.employeeId = employeeId;
+ this.address = address;
+ this.employeeName = employeeName;
+ }
+
+ public Integer getEmployeeId() {
+ return employeeId;
+ }
+
+ public void setEmployeeId(Integer employeeId) {
+ this.employeeId = employeeId;
+ }
+
+ public Address getAddress() {
+ return address;
+ }
+
+ public void setAddress(Address address) {
+ this.address = address;
+ }
+
+ public String getEmployeeName() {
+ return employeeName;
+ }
+
+ public void setEmployeeName(String employeeName) {
+ this.employeeName = employeeName;
+ }
+
+}
diff --git a/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/MapsUtil.java b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/MapsUtil.java
new file mode 100644
index 0000000000..53781b0bc1
--- /dev/null
+++ b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/MapsUtil.java
@@ -0,0 +1,57 @@
+package com.baeldung.nestedhashmaps;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
+
+public class MapsUtil {
+
+ MapsUtil() {
+ super();
+ }
+
+ public Map buildInnerMap(List batterList) {
+ Map innerBatterMap = new HashMap();
+
+ int index = 1;
+ for (String item : batterList) {
+ innerBatterMap.put(index, item);
+ index++;
+ }
+
+ return innerBatterMap;
+ }
+
+ public Map> createNestedMapfromStream(List listEmployee) {
+ Map> employeeAddressMap = listEmployee.stream()
+ .collect(Collectors.groupingBy(e -> e.getAddress().getAddressId(),
+ Collectors.toMap(f -> f.getAddress().getAddressLocation(), Employee::getEmployeeName)));
+ return employeeAddressMap;
+ }
+
+ public Map> createNestedObjectMap(List listEmployee) {
+ Map> employeeMap = new HashMap<>();
+
+ employeeMap = listEmployee.stream().collect(Collectors.groupingBy((Employee emp) -> emp.getEmployeeId(),
+ Collectors.toMap((Employee emp) -> emp.getAddress().getAddressId(), fEmpObj -> fEmpObj.getAddress())));
+
+ return employeeMap;
+ }
+
+ public Map flattenMap(Map, ?> source) {
+ Map converted = new HashMap<>();
+
+ for (Entry, ?> entry : source.entrySet()) {
+ if (entry.getValue() instanceof Map) {
+ flattenMap((Map) entry.getValue())
+ .forEach((key, value) -> converted.put(entry.getKey() + "." + key, value));
+ } else {
+ converted.put(entry.getKey().toString(), entry.getValue().toString());
+ }
+ }
+ return converted;
+ }
+
+}
diff --git a/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClass.java b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClass.java
new file mode 100644
index 0000000000..ce63b72527
--- /dev/null
+++ b/core-java-modules/core-java-collections-maps-4/src/main/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClass.java
@@ -0,0 +1,118 @@
+package com.baeldung.nestedhashmaps;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import java.util.List;
+
+public class NestedHashMapExamplesClass {
+ public static void main(String[] args) {
+
+ MapsUtil mUtil = new MapsUtil();
+
+ List batterList = new ArrayList<>();
+ Map> outerBakedGoodsMap = new HashMap<>();
+ Map> outerBakedGoodsMap2 = new HashMap<>();
+ Map> outerBakedGoodsMap3 = new HashMap<>();
+ Map> outerBakedGoodsMap4 = new HashMap<>();
+
+ batterList.add("Mulberry");
+ batterList.add("Cranberry");
+ batterList.add("Blackberry");
+ batterList.add("Mixed fruit");
+ batterList.add("Orange");
+
+ outerBakedGoodsMap.put("Cake", mUtil.buildInnerMap(batterList));
+
+ batterList.clear();
+ batterList.add("Candy");
+ batterList.add("Dark Chocolate");
+ batterList.add("Chocolate");
+ batterList.add("Jam filled");
+ batterList.add("Pineapple");
+
+ outerBakedGoodsMap.put("Donut", mUtil.buildInnerMap(batterList));
+
+ outerBakedGoodsMap2.put("Eclair", mUtil.buildInnerMap(batterList));
+ outerBakedGoodsMap2.put("Donut", mUtil.buildInnerMap(batterList));
+
+ outerBakedGoodsMap3.put("Cake", mUtil.buildInnerMap(batterList));
+ batterList.clear();
+ batterList.add("Banana");
+ batterList.add("Red Velvet");
+ batterList.add("Blackberry");
+ batterList.add("Passion fruit");
+ batterList.add("Kiwi");
+
+ outerBakedGoodsMap3.put("Donut", mUtil.buildInnerMap(batterList));
+
+ outerBakedGoodsMap4.putAll(outerBakedGoodsMap);
+
+ System.out.println(outerBakedGoodsMap.equals(outerBakedGoodsMap2));
+ System.out.println(outerBakedGoodsMap.equals(outerBakedGoodsMap3));
+ System.out.println(outerBakedGoodsMap.equals(outerBakedGoodsMap4));
+
+ outerBakedGoodsMap.get("Cake")
+ .put(6, "Cranberry");
+ System.out.println(outerBakedGoodsMap);
+
+ outerBakedGoodsMap.get("Cake")
+ .remove(5);
+ System.out.println(outerBakedGoodsMap);
+
+ outerBakedGoodsMap.put("Eclair", new HashMap() {
+ {
+ put(1, "Dark Chocolate");
+ }
+ });
+
+ System.out.println(outerBakedGoodsMap);
+ outerBakedGoodsMap.remove("Eclair");
+ System.out.println(outerBakedGoodsMap);
+ System.out.println("Baked Goods Map Flattened: " + mUtil.flattenMap(outerBakedGoodsMap));
+
+ // Employees Map
+ List listEmployee = new ArrayList();
+
+ listEmployee.add(new Employee(1, new Address(124, "Timbuktoo"), "Thorin Oakenshield"));
+ listEmployee.add(new Employee(2, new Address(100, "Misty Lanes"), "Balin"));
+ listEmployee.add(new Employee(3, new Address(156, "Bramles Lane"), "Bofur"));
+ listEmployee.add(new Employee(4, new Address(200, "Bag End"), "Bilbo Baggins"));
+ listEmployee.add(new Employee(5, new Address(23, "Rivendell"), "Elrond"));
+
+ Map> employeeAddressMap = mUtil.createNestedMapfromStream(listEmployee);
+
+ Map> employeeMap = mUtil.createNestedObjectMap(listEmployee);
+ Map> employeeMap2 = mUtil.createNestedObjectMap(listEmployee);
+
+ listEmployee.clear();
+ listEmployee.add(new Employee(1, new Address(500, "Timbuktoo"), "Thorin Oakenshield"));
+ listEmployee.add(new Employee(2, new Address(600, "Misty Lanes"), "Balin"));
+ listEmployee.add(new Employee(3, new Address(700, "Bramles Lane"), "Bofur"));
+ listEmployee.add(new Employee(4, new Address(800, "Bag End"), "Bilbo Baggins"));
+ listEmployee.add(new Employee(5, new Address(900, "Rivendell"), "Elrond"));
+
+ Map> employeeAddressMap1 = mUtil.createNestedMapfromStream(listEmployee);
+
+ Map> employeeMap1 = mUtil.createNestedObjectMap(listEmployee);
+
+ System.out.println(employeeMap.equals(employeeMap1));
+ System.out.println(employeeMap.equals(employeeMap2));
+
+ for (Map.Entry> outerBakedGoodsMapEntrySet : outerBakedGoodsMap.entrySet()) {
+ Map valueMap = outerBakedGoodsMapEntrySet.getValue();
+ System.out.println(valueMap.entrySet());
+ }
+
+ for (Map.Entry> employeeEntrySet : employeeAddressMap.entrySet()) {
+ Map valueMap = employeeEntrySet.getValue();
+ System.out.println(valueMap.entrySet());
+ }
+
+ System.out.println("Employee Address Map Flattened: " + mUtil.flattenMap(employeeAddressMap));
+
+ System.out.println(employeeAddressMap.equals(employeeAddressMap1));
+ }
+
+}
diff --git a/core-java-modules/core-java-collections-maps-4/src/test/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClassUnitTest.java b/core-java-modules/core-java-collections-maps-4/src/test/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClassUnitTest.java
new file mode 100644
index 0000000000..a86e329bea
--- /dev/null
+++ b/core-java-modules/core-java-collections-maps-4/src/test/java/com/baeldung/nestedhashmaps/NestedHashMapExamplesClassUnitTest.java
@@ -0,0 +1,243 @@
+package com.baeldung.nestedhashmaps;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertThat;
+import org.hamcrest.collection.IsMapContaining;
+
+public class NestedHashMapExamplesClassUnitTest {
+ private MapsUtil mUtil = new MapsUtil();
+ private List batterList = new ArrayList<>();
+ private List listEmployee = new ArrayList();
+ private Map> actualBakedGoodsMap = new HashMap<>();
+ private Map> actualEmployeeAddressMap = new HashMap<>();
+ private Map> actualEmployeeMap = new HashMap<>();
+
+ @Test
+ public void whenCreateNestedHashMap_thenNestedMap() {
+ assertThat(mUtil.buildInnerMap(batterList), is(notNullValue()));
+ Assert.assertEquals(actualBakedGoodsMap.keySet().size(), 2);
+ Assert.assertThat(actualBakedGoodsMap, IsMapContaining.hasValue(equalTo(mUtil.buildInnerMap(batterList))));
+ }
+
+ private Map> setup() {
+ Map> expectedMap = new HashMap<>();
+ expectedMap.put(Integer.valueOf(100), new HashMap() {
+ {
+ put("Misty Lanes", "Balin");
+ }
+ });
+ expectedMap.put(Integer.valueOf(200), new HashMap() {
+ {
+ put("Bag End", "Bilbo Baggins");
+ }
+ });
+ expectedMap.put(Integer.valueOf(156), new HashMap() {
+ {
+ put("Brambles Lane", "Bofur");
+ }
+ });
+ expectedMap.put(Integer.valueOf(124), new HashMap() {
+ {
+ put("Timbuktoo", "Thorin Oakenshield");
+ }
+ });
+ expectedMap.put(Integer.valueOf(23), new HashMap() {
+ {
+ put("Rivendell", "Elrond");
+ }
+ });
+
+ return expectedMap;
+ }
+
+ @Test
+ public void whenCreateNestedHashMapwithStreams_thenNestedMap() {
+
+ Map> expectedMap = setup();
+
+ assertThat(actualEmployeeAddressMap, equalTo(expectedMap));
+ }
+
+ @Test
+ public void whenCompareTwoHashMapswithDifferenctValues_usingEquals_thenFail() {
+ Map> outerBakedGoodsMap2 = new HashMap<>();
+ outerBakedGoodsMap2.put("Eclair", mUtil.buildInnerMap(batterList));
+ outerBakedGoodsMap2.put("Donut", mUtil.buildInnerMap(batterList));
+ assertNotEquals(outerBakedGoodsMap2, actualBakedGoodsMap);
+
+ Map> outerBakedGoodsMap3 = new HashMap>();
+ outerBakedGoodsMap3.put("Cake", mUtil.buildInnerMap(batterList));
+ batterList = new ArrayList<>();
+ batterList = Arrays.asList("Banana", "Red Velvet", "Blackberry", "Passion fruit", "Kiwi");
+
+ outerBakedGoodsMap3.put("Donut", mUtil.buildInnerMap(batterList));
+
+ assertNotEquals(outerBakedGoodsMap2, actualBakedGoodsMap);
+
+ listEmployee.clear();
+ listEmployee.add(new Employee(1, new Address(500, "Timbuktoo"), "Thorin Oakenshield"));
+ listEmployee.add(new Employee(2, new Address(600, "Misty Lanes"), "Balin"));
+ listEmployee.add(new Employee(3, new Address(700, "Bramles Lane"), "Bofur"));
+ listEmployee.add(new Employee(4, new Address(800, "Bag End"), "Bilbo Baggins"));
+ listEmployee.add(new Employee(5, new Address(900, "Rivendell"), "Elrond"));
+
+ Map> employeeAddressMap1 = mUtil.createNestedMapfromStream(listEmployee);
+
+ Map> employeeMap1 = mUtil.createNestedObjectMap(listEmployee);
+
+ assertNotEquals(employeeAddressMap1, actualEmployeeAddressMap);
+
+ assertNotEquals(employeeMap1, actualEmployeeMap);
+ }
+
+ @Test
+ public void whencomparingDifferentObjectValuesUsingEquals_thenFail() {
+ listEmployee.clear();
+ listEmployee.add(new Employee(1, new Address(124, "Timbuktoo"), "Thorin Oakenshield"));
+ listEmployee.add(new Employee(2, new Address(100, "Misty Lanes"), "Balin"));
+ listEmployee.add(new Employee(3, new Address(156, "Brambles Lane"), "Bofur"));
+ listEmployee.add(new Employee(4, new Address(200, "Bag End"), "Bilbo Baggins"));
+ listEmployee.add(new Employee(5, new Address(23, "Rivendell"), "Elrond"));
+
+ Map> employeeMap1 = listEmployee.stream().collect(Collectors.groupingBy(
+ (Employee emp) -> emp.getEmployeeId(),
+ Collectors.toMap((Employee emp) -> emp.getAddress().getAddressId(), fEmpObj -> fEmpObj.getAddress())));
+
+ assertNotSame(employeeMap1, actualEmployeeMap);
+ assertNotEquals(employeeMap1, actualEmployeeMap);
+
+ Map> expectedMap = setupAddressObjectMap();
+ assertNotSame(expectedMap, actualEmployeeMap);
+ assertNotEquals(expectedMap, actualEmployeeMap);
+
+ }
+
+ @Test
+ public void whenCompareTwoHashMapsUsingEquals_thenSuccess() {
+ Map> outerBakedGoodsMap4 = new HashMap<>();
+ outerBakedGoodsMap4.putAll(actualBakedGoodsMap);
+
+ assertEquals(actualBakedGoodsMap, outerBakedGoodsMap4);
+
+ Map> employeeMap1 = new HashMap<>();
+ employeeMap1.putAll(actualEmployeeMap);
+ assertEquals(actualEmployeeMap, employeeMap1);
+ }
+
+ @Test
+ public void whenAddElementinHashMaps_thenSuccess() {
+ assertEquals(actualBakedGoodsMap.get("Cake").size(), 5);
+ actualBakedGoodsMap.get("Cake").put(6, "Cranberry");
+ assertEquals(actualBakedGoodsMap.get("Cake").size(), 6);
+ }
+
+ @Test
+ public void whenDeleteElementinHashMaps_thenSuccess() {
+ assertNotEquals(actualBakedGoodsMap.get("Cake").get(5), null);
+ actualBakedGoodsMap.get("Cake").remove(5);
+ assertEquals(actualBakedGoodsMap.get("Cake").get(5), null);
+
+ actualBakedGoodsMap.put("Eclair", new HashMap() {
+ {
+ put(1, "Dark Chocolate");
+ }
+ });
+
+ assertNotEquals(actualBakedGoodsMap.get("Eclair").get(1), null);
+ actualBakedGoodsMap.get("Eclair").remove(1);
+ assertEquals(actualBakedGoodsMap.get("Eclair").get(1), null);
+
+ actualBakedGoodsMap.put("Eclair", new HashMap() {
+ {
+ put(1, "Dark Chocolate");
+ }
+ });
+
+ assertNotEquals(actualBakedGoodsMap.get("Eclair"), null);
+ actualBakedGoodsMap.remove("Eclair");
+ assertEquals(actualBakedGoodsMap.get("Eclair"), null);
+ }
+
+ @Test
+ public void whenFlattenMap_thenRemovesNesting() {
+
+ Map flattenedBakedGoodsMap = mUtil.flattenMap(actualBakedGoodsMap);
+ assertThat(flattenedBakedGoodsMap, IsMapContaining.hasKey("Donut.2"));
+
+ Map flattenedEmployeeAddressMap = mUtil.flattenMap(actualEmployeeAddressMap);
+ assertThat(flattenedEmployeeAddressMap, IsMapContaining.hasKey("200.Bag End"));
+ }
+
+ @Before
+ public void buildMaps() {
+
+ batterList = Arrays.asList("Mulberry", "Cranberry", "Blackberry", "Mixed fruit", "Orange");
+
+ actualBakedGoodsMap.put("Cake", mUtil.buildInnerMap(batterList));
+
+ batterList = new ArrayList<>();
+ batterList = Arrays.asList("Candy", "Dark Chocolate", "Chocolate", "Jam filled", "Pineapple");
+
+ actualBakedGoodsMap.put("Donut", mUtil.buildInnerMap(batterList));
+
+ listEmployee.add(new Employee(1, new Address(124, "Timbuktoo"), "Thorin Oakenshield"));
+ listEmployee.add(new Employee(2, new Address(100, "Misty Lanes"), "Balin"));
+ listEmployee.add(new Employee(3, new Address(156, "Brambles Lane"), "Bofur"));
+ listEmployee.add(new Employee(4, new Address(200, "Bag End"), "Bilbo Baggins"));
+ listEmployee.add(new Employee(5, new Address(23, "Rivendell"), "Elrond"));
+
+ actualEmployeeAddressMap = mUtil.createNestedMapfromStream(listEmployee);
+
+ actualEmployeeMap = mUtil.createNestedObjectMap(listEmployee);
+
+ }
+
+ private Map> setupAddressObjectMap() {
+
+ Map> expectedMap = new HashMap<>();
+
+ expectedMap.put(1, new HashMap() {
+ {
+ put(124, new Address(124, "Timbuktoo"));
+ }
+ });
+ expectedMap.put(2, new HashMap() {
+ {
+ put(100, new Address(100, "Misty Lanes"));
+ }
+ });
+ expectedMap.put(3, new HashMap() {
+ {
+ put(156, new Address(156, "Brambles Lane"));
+ }
+ });
+ expectedMap.put(4, new HashMap() {
+ {
+ put(200, new Address(200, "Bag End"));
+ }
+ });
+ expectedMap.put(5, new HashMap() {
+ {
+ put(23, new Address(23, "Rivendell"));
+ }
+ });
+ return expectedMap;
+ }
+
+}