package mireka.transmission.immediate; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import mireka.smtp.EnhancedStatus; import mireka.smtp.MailSystemStatus; import org.junit.Test; import org.subethamail.smtp.client.SMTPClient.Response; public class ResponseFactoryTest { private static final String ENHANCED_EXAMPLE = "5.7.1 Delivery not authorized, message refused"; private static final String ORIGINAL_EXAMPLE = "Delivery not authorized, message refused"; @Test public void testCreateResponseLookingForEnhancedStatusCode_original() { Response srcResponse = new Response(500, ENHANCED_EXAMPLE); MailSystemStatus basicResponse = new ResponseParser() .createResponseLookingForEnhancedStatusCode(srcResponse); assertThat(basicResponse, instanceOf(EnhancedStatus.class)); EnhancedStatus enhancedResponse = (EnhancedStatus) basicResponse; assertEquals("5.7.1", enhancedResponse.getEnhancedStatusCode()); assertEquals("Delivery not authorized, message refused", enhancedResponse.getMessage()); assertEquals(500, enhancedResponse.getSmtpReplyCode()); } @Test public void testCreateResponseLookingForEnhancedStatusCode_enhanced() { Response srcResponse = new Response(500, ORIGINAL_EXAMPLE); MailSystemStatus basicResponse = new ResponseParser() .createResponseLookingForEnhancedStatusCode(srcResponse); assertThat(basicResponse, instanceOf(Rfc821Status.class)); assertEquals("Delivery not authorized, message refused", basicResponse.getMessage()); assertEquals(500, basicResponse.getSmtpReplyCode()); } }