package com.flextrade.jfixture.builders;
import com.flextrade.jfixture.NoSpecimen;
import com.flextrade.jfixture.utility.SpecimenType;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class TestMapBuilder {
private MapBuilder mapBuilder;
@Before
public void initialise() {
this.mapBuilder = new MapBuilder();
}
@Test
public void non_specimen_type_request_returns_no_specimen() {
Object result = this.mapBuilder.create("string", null);
assertEquals(new NoSpecimen(), result);
}
@Test
public void non_map_specimen_type_return_no_specimen() {
Object result = this.mapBuilder.create(SpecimenType.of(List.class), null);
assertEquals(new NoSpecimen(), result);
}
@Test
public void non_interface_map_type_returns_no_specimen() {
Object result = this.mapBuilder.create(SpecimenType.of(LinkedHashMap.class), null);
assertEquals(new NoSpecimen(), result);
}
@Test
public void class_type_assignable_to_map_returns_instance_of_hash_map() {
Object result = this.mapBuilder.create(SpecimenType.of(Map.class), null);
assertTrue(result instanceof HashMap);
result = this.mapBuilder.create(SpecimenType.of(SortedMap.class), null);
assertTrue(result instanceof HashMap);
}
}