package com.sequenceiq.cloudbreak.converter; import static org.mockito.BDDMockito.given; import static org.mockito.Matchers.any; import java.util.Arrays; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.core.convert.ConversionService; import com.sequenceiq.cloudbreak.api.model.ClusterRequest; import com.sequenceiq.cloudbreak.api.model.FileSystemRequest; import com.sequenceiq.cloudbreak.domain.Cluster; import com.sequenceiq.cloudbreak.domain.FileSystem; public class JsonToClusterConverterTest extends AbstractJsonConverterTest<ClusterRequest> { @InjectMocks private JsonToClusterConverter underTest; @Mock private ConversionService conversionService; @Before public void setUp() { underTest = new JsonToClusterConverter(); MockitoAnnotations.initMocks(this); } @Test public void testConvert() { // GIVEN // WHEN Cluster result = underTest.convert(getRequest("stack/cluster.json")); // THEN assertAllFieldsNotNull(result, Arrays.asList("stack", "blueprint", "creationStarted", "creationFinished", "upSince", "statusReason", "ambariIp", "ambariStackDetails", "fileSystem", "sssdConfig", "certDir", "rdsConfigs", "ldapConfig", "attributes", "blueprintCustomProperties")); } @Test public void testConvertWithFileSystemDetails() { // GIVEN given(conversionService.convert(any(FileSystemRequest.class), any(Class.class))).willReturn(new FileSystem()); // WHEN Cluster result = underTest.convert(getRequest("stack/cluster-with-file-system.json")); // THEN assertAllFieldsNotNull(result, Arrays.asList("stack", "blueprint", "creationStarted", "creationFinished", "upSince", "statusReason", "ambariIp", "ambariStackDetails", "sssdConfig", "certDir", "rdsConfigs", "ldapConfig", "attributes", "blueprintCustomProperties")); } @Test public void testNoGateway() { // GIVEN // WHEN Cluster result = underTest.convert(getRequest("stack/cluster-no-gateway.json")); // THEN assertAllFieldsNotNull(result, Arrays.asList("stack", "blueprint", "creationStarted", "creationFinished", "upSince", "statusReason", "ambariIp", "ambariStackDetails", "fileSystem", "sssdConfig", "certDir", "rdsConfigs", "ldapConfig", "attributes", "blueprintCustomProperties")); assertAllFieldsNotNull(result.getGateway(), Arrays.asList("id", "ssoProvider", "signKey", "signPub", "signCert")); } @Override public Class<ClusterRequest> getRequestClass() { return ClusterRequest.class; } }