package org.jbehave.core.model; import java.util.List; import com.google.gson.Gson; import org.jbehave.core.io.ResourceLoader; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class JsonFactoryBehaviour { private String jsonAsString = "{\"string\":\"String1\",\"integer\":2,\"stringList\":[\"String2\",\"String3\"]," + "\"integerList\":[3,4]}"; @Test public void shouldCreateJsonFromStringJsonInput() { // Given JsonFactory factory = new JsonFactory(); // When MyJsonDto json = (MyJsonDto) factory.createJson(jsonAsString, MyJsonDto.class); // Then assertThat(new Gson().toJson(json), equalTo(jsonAsString)); } @Test public void shouldCreateJsonFromResourceInput() { // Given ResourceLoader resourceLoader = mock(ResourceLoader.class); JsonFactory factory = new JsonFactory(resourceLoader); // When String resourcePath = "/path/to/json"; when(resourceLoader.loadResourceAsText(resourcePath)).thenReturn(jsonAsString); MyJsonDto json = (MyJsonDto) factory.createJson(resourcePath, MyJsonDto.class); // Then assertThat(new Gson().toJson(json), equalTo(jsonAsString)); } public static class MyJsonDto { private String string; private Integer integer; private List<String> stringList; private List<Integer> integerList; } }