package gov.samhsa.consent2share.c32;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import gov.samhsa.consent2share.c32.dto.GreenCCD;
import gov.samhsa.consent2share.commonunit.io.ResourceFileReader;
import org.junit.Assert;
import org.junit.Test;
// TODO: Auto-generated Javadoc
/**
* The Class C32ParserImplTest.
*/
public class C32ParserImplTest {
/**
* Test constructor_ given_ null_ c32 to green ccd transformer_ throws_ illegal argument exception.
*
* @throws Throwable the throwable
*/
@Test(expected = IllegalArgumentException.class)
public void testConstructor_Given_Null_C32ToGreenCcdTransformer_Throws_IllegalArgumentException()
throws Throwable {
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
C32ParserImpl sut = new C32ParserImpl(null, greenCcdSerializern);
}
/**
* Test constructor_ given_ null_ green ccd serializern_ throws_ illegal argument exception.
*
* @throws Throwable the throwable
*/
@Test(expected = IllegalArgumentException.class)
public void testConstructor_Given_Null_GreenCcdSerializern_Throws_IllegalArgumentException()
throws Throwable {
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer, null);
}
/**
* Test transform c32 to green ccd_ given_ null_ c32 xml_ throws_ illegal argument exception.
*
* @throws Throwable the throwable
*/
@Test(expected = IllegalArgumentException.class)
public void testTransformC32ToGreenCcd_Given_Null_C32Xml_Throws_IllegalArgumentException()
throws Throwable {
// Arrange
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer,
greenCcdSerializern);
// Act
sut.ParseC32(null);
}
/**
* Test transform c32 to green ccd_ given_ empty_ c32 xml_ throws_ illegal argument exception.
*
* @throws Throwable the throwable
*/
@Test(expected = IllegalArgumentException.class)
public void testTransformC32ToGreenCcd_Given_Empty_C32Xml_Throws_IllegalArgumentException()
throws Throwable {
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer,
greenCcdSerializern);
// Act
sut.ParseC32("");
}
/**
* Test transform c32 to green ccd_ given_ no text_ c32 xml_ throws_ illegal argument exception.
*
* @throws Throwable the throwable
*/
@Test(expected = IllegalArgumentException.class)
public void testTransformC32ToGreenCcd_Given_NoText_C32Xml_Throws_IllegalArgumentException()
throws Throwable {
// Arrange
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer,
greenCcdSerializern);
// Act
sut.ParseC32(" ");
}
/**
* Test parse c32_ given_ valid_ c32 xml_ succeeds.
*
* @throws C32ToGreenCcdTransformerException the c32 to green ccd transformer exception
* @throws GreenCcdSerializerException the green ccd serializer exception
* @throws C32ParserException the c32 parser exception
*/
@Test
public void testParseC32_Given_Valid_C32Xml_Succeeds()
throws C32ToGreenCcdTransformerException,
GreenCcdSerializerException, C32ParserException {
// Arrange
String c32Xml = "Is this a valid c32?"; // Apparently not
final String greenCcdXmlFileUri = "green_ccd.xml";
String greenCcdXml = ResourceFileReader
.getStringFromResourceFile(greenCcdXmlFileUri);
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
GreenCCD greenCCD = mock(GreenCCD.class);
when(c32ToGreenCcdTransformer.TransformC32ToGreenCcd(anyString()))
.thenReturn(greenCcdXml);
when(greenCcdSerializern.Deserialize(greenCcdXml)).thenReturn(greenCCD);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer, greenCcdSerializern);
// Act
GreenCCD result = sut.ParseC32(c32Xml);
// Assert
Assert.assertEquals(greenCCD, result);
}
/**
* Test parse c32_ given_ c32 to green ccd transformer exception_ throws_ c32 parser exception.
*
* @throws C32ToGreenCcdTransformerException the c32 to green ccd transformer exception
* @throws GreenCcdSerializerException the green ccd serializer exception
* @throws C32ParserException the c32 parser exception
*/
@Test(expected=C32ParserException.class)
public void testParseC32_Given_C32ToGreenCcdTransformerException_Throws_C32ParserException()
throws C32ToGreenCcdTransformerException,
GreenCcdSerializerException, C32ParserException {
// Arrange
String c32Xml = "Is this a valid c32?"; // Apparently not
C32ToGreenCcdTransformer c32ToGreenCcdTransformer = mock(C32ToGreenCcdTransformer.class);
GreenCcdSerializer greenCcdSerializern = mock(GreenCcdSerializer.class);
GreenCCD greenCCD = mock(GreenCCD.class);
when(c32ToGreenCcdTransformer.TransformC32ToGreenCcd(anyString()))
.thenThrow(C32ParserException.class);
C32ParserImpl sut = new C32ParserImpl(c32ToGreenCcdTransformer, greenCcdSerializern);
// Act
GreenCCD result = sut.ParseC32(c32Xml);
}
}