package com.sequenceiq.cloudbreak.converter;
import static org.junit.Assert.assertEquals;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.anyString;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import com.fasterxml.jackson.databind.JsonNode;
import com.sequenceiq.cloudbreak.TestUtil;
import com.sequenceiq.cloudbreak.api.model.BlueprintResponse;
import com.sequenceiq.cloudbreak.controller.json.JsonHelper;
import com.sequenceiq.cloudbreak.domain.Blueprint;
public class BlueprintToJsonConverterTest extends AbstractEntityConverterTest<Blueprint> {
@InjectMocks
private BlueprintToJsonConverter underTest;
@Mock
private JsonHelper jsonHelper;
@Mock
private JsonNode jsonNode;
@Before
public void setUp() {
underTest = new BlueprintToJsonConverter();
MockitoAnnotations.initMocks(this);
}
@Test
public void testConvert() {
// GIVEN
given(jsonHelper.createJsonFromString(anyString())).willReturn(jsonNode);
given(jsonNode.toString()).willReturn("dummyAmbariBlueprint");
// WHEN
BlueprintResponse result = underTest.convert(getSource());
// THEN
assertEquals("multi-node-yarn", result.getBlueprintName());
assertAllFieldsNotNull(result);
}
@Test
public void testConvertThrowsException() {
// GIVEN
given(jsonHelper.createJsonFromString(anyString())).willThrow(new RuntimeException("error"));
// WHEN
BlueprintResponse result = underTest.convert(getSource());
// THEN
assertEquals("\"error\"", result.getAmbariBlueprint());
assertAllFieldsNotNull(result);
}
@Override
public Blueprint createSource() {
return TestUtil.blueprint();
}
}