package gov.samhsa.acs.brms.tool; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import com.googlecode.sardine.Sardine; import com.googlecode.sardine.util.SardineException; public class FactModelGuvnorUploaderTest { @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testIsValid() { // Arrange String[] args0 = {}; String[] args1 = { "a" }; String[] args2 = { "a", "a" }; String[] args3 = { "a", "a", "a" }; String[] args4 = { "a", "a", "a", "a" }; String[] args5 = { "a", "a", "a", "a", "a" }; // Act boolean isValid0 = FactModelGuvnorUploader.isValid(args0); boolean isValid1 = FactModelGuvnorUploader.isValid(args1); boolean isValid2 = FactModelGuvnorUploader.isValid(args2); boolean isValid3 = FactModelGuvnorUploader.isValid(args3); boolean isValid4 = FactModelGuvnorUploader.isValid(args4); boolean isValid5 = FactModelGuvnorUploader.isValid(args5); // Assert assertFalse(isValid0); assertFalse(isValid1); assertFalse(isValid2); assertTrue(isValid3); assertFalse(isValid4); assertFalse(isValid5); } @Test public void testBegin() { // Act Sardine sardine = FactModelGuvnorUploader.begin("a", "a"); // Assert assertNotNull(sardine); } @Test public void testGetFileBytes() { // Arrange String testFilePath = "src/test/resources/testFile.txt"; // Act byte[] bytes = FactModelGuvnorUploader.getFileBytes(testFilePath); // Assert assertEquals(116, bytes[0]); assertEquals(101, bytes[1]); assertEquals(115, bytes[2]); assertEquals(116, bytes[3]); } @Test public void testGetFileBytes_Throws_FileNotFoundException() { // Arrange String testFilePath = "src/test/resources/DoesntExist.txt"; // Act byte[] bytes = FactModelGuvnorUploader.getFileBytes(testFilePath); // Assert assertNull(bytes); } @Test public void testPut() throws SardineException { // Arrange Sardine sardineMock = mock(Sardine.class); String putUrlMock = "putUrlMock"; byte[] dataMock = { 116, 101, 115, 116 }; doNothing().when(sardineMock).put(putUrlMock, dataMock); // Act FactModelGuvnorUploader.put(sardineMock, putUrlMock, dataMock); } @Test public void testPut_Throws_SardineException() throws SardineException { // Arrange Sardine sardineMock = mock(Sardine.class); String putUrlMock = "putUrlMock"; byte[] dataMock = { 116, 101, 115, 116 }; doThrow(SardineException.class).when(sardineMock).put(putUrlMock, dataMock); // Act FactModelGuvnorUploader.put(sardineMock, putUrlMock, dataMock); } }