package org.molgenis.data.mapper.mapping.model; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class CategoryMappingTest { private CategoryMapping<String, String> mapping = CategoryMapping.<String, String>create("blah", ImmutableMap.<String, String>of("Human", "1", "Orc", "2")); private CategoryMapping<String, String> mappingWithNullValueInMap = CategoryMapping .create("$('LifeLines_GENDER').map({\"0\":null,\"1\":\"0\"}).value();"); private CategoryMapping<String, String> mappingWithDefault = CategoryMapping.<String, String>create("blah", ImmutableMap.<String, String>of("Human", "1", "Orc", "2"), "3"); private CategoryMapping<String, String> mappingWithDefaultNull = CategoryMapping.<String, String>create("blah", ImmutableMap.<String, String>of("Human", "1", "Orc", "2"), null); private CategoryMapping<String, String> mappingWithNullValue = CategoryMapping.<String, String>create("blah", ImmutableMap.<String, String>of("Human", "1", "Orc", "2"), "3", "5"); private CategoryMapping<String, String> mappingWithNullValueEqualsNull = CategoryMapping.<String, String>create( "blah", ImmutableMap.<String, String>of("Human", "1", "Orc", "2"), "3", null); @Test public void testCreateFromAlgorithm() { assertEquals(CategoryMapping.create(mapping.getAlgorithm()), mapping); assertEquals(CategoryMapping.create(mappingWithNullValueInMap.getAlgorithm()), mappingWithNullValueInMap); assertEquals(CategoryMapping.create(mappingWithDefault.getAlgorithm()), mappingWithDefault); assertEquals(CategoryMapping.create(mappingWithDefaultNull.getAlgorithm()), mappingWithDefaultNull); assertEquals(CategoryMapping.create(mappingWithNullValue.getAlgorithm()), mappingWithNullValue); assertEquals(CategoryMapping.create(mappingWithNullValueEqualsNull.getAlgorithm()), mappingWithNullValueEqualsNull); } @Test public void testGetAlgorithm() { assertEquals(mapping.getAlgorithm(), "$('blah').map({\"Human\":\"1\",\"Orc\":\"2\"}).value();"); assertEquals(mappingWithDefault.getAlgorithm(), "$('blah').map({\"Human\":\"1\",\"Orc\":\"2\"}, \"3\").value();"); assertEquals(mappingWithNullValue.getAlgorithm(), "$('blah').map({\"Human\":\"1\",\"Orc\":\"2\"}, \"3\", \"5\").value();"); assertEquals(mappingWithNullValueEqualsNull.getAlgorithm(), "$('blah').map({\"Human\":\"1\",\"Orc\":\"2\"}, \"3\", null).value();"); } }