package rocks.inspectit.shared.all.versioning;
import static org.mockito.Mockito.when;
import java.io.ByteArrayInputStream;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.testng.Assert;
import org.testng.annotations.Test;
import rocks.inspectit.shared.all.testbase.TestBase;
import rocks.inspectit.shared.all.util.ResourceUtils;
import rocks.inspectit.shared.all.version.FileBasedVersionReader;
import rocks.inspectit.shared.all.version.InvalidVersionException;
/**
* Tests the <code>FileBasedVersionReader</code>
*
* @author Stefan Siegl
*/
public class FileBasedVersionReaderTest extends TestBase {
@InjectMocks
FileBasedVersionReader reader;
@Mock
ResourceUtils resourceUtils;
@Test(expectedExceptions = InvalidVersionException.class)
public void versionLogNotFound() throws Exception {
when(resourceUtils.getAsStream(Matchers.anyString())).thenReturn(null);
reader.readVersion();
}
@Test(expectedExceptions = InvalidVersionException.class)
public void versionLogEmpty() throws Exception {
String content = "";
when(resourceUtils.getAsStream(Matchers.anyString())).thenReturn(new ByteArrayInputStream(content.getBytes("UTF-8")));
reader.readVersion();
}
@Test(expectedExceptions = InvalidVersionException.class)
public void versionLogEmptyFirstLine() throws Exception {
String content = "\n1.5.2.24";
when(resourceUtils.getAsStream(Matchers.anyString())).thenReturn(new ByteArrayInputStream(content.getBytes("UTF-8")));
reader.readVersion();
}
@Test
public void versionLogCorrect() throws Exception {
String content = "1.5.2.24";
when(resourceUtils.getAsStream(Matchers.anyString())).thenReturn(new ByteArrayInputStream(content.getBytes("UTF-8")));
Assert.assertEquals(reader.readVersion(), content);
}
@Test
public void versionLogCorrectMoreLines() throws Exception {
String version = "1.5.2.24";
String content = version + "\n\n";
when(resourceUtils.getAsStream(Matchers.anyString())).thenReturn(new ByteArrayInputStream(content.getBytes("UTF-8")));
Assert.assertEquals(reader.readVersion(), version);
}
}