aboutsummaryrefslogtreecommitdiffstats
path: root/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java')
-rw-r--r--node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java
new file mode 100644
index 00000000000..cd5c16c43d2
--- /dev/null
+++ b/node-maintainer/src/test/java/com/yahoo/vespa/hosted/node/verification/spec/retrievers/DiskRetrieverTest.java
@@ -0,0 +1,95 @@
+package com.yahoo.vespa.hosted.node.verification.spec.retrievers;
+
+import com.yahoo.vespa.hosted.node.verification.commons.ParseResult;
+import com.yahoo.vespa.hosted.node.verification.mock.MockCommandExecutor;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Created by olaa on 06/07/2017.
+ */
+public class DiskRetrieverTest {
+
+ private MockCommandExecutor commandExecutor;
+ private HardwareInfo hardwareInfo;
+ private DiskRetriever diskRetriever;
+ private static String CAT_RESOURCE_PATH = "cat src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/";
+ private static final double DELTA = 0.1;
+
+ @Before
+ public void setup() {
+ hardwareInfo = new HardwareInfo();
+ commandExecutor = new MockCommandExecutor();
+ diskRetriever = new DiskRetriever(hardwareInfo, commandExecutor);
+ }
+
+ @Test
+ public void updateInfo_should_store_diskType_and_diskSize_in_hardware_info() {
+ commandExecutor.addCommand(CAT_RESOURCE_PATH + "DiskTypeFastDisk");
+ commandExecutor.addCommand(CAT_RESOURCE_PATH + "filesize");
+ diskRetriever.updateInfo();
+ assertTrue(hardwareInfo.getFastDisk());
+ double expectedSize = 63D;
+ assertEquals(expectedSize, hardwareInfo.getMinDiskAvailableGb(), DELTA);
+ }
+
+ @Test
+ public void updateDiskType__should_store_diskType_in_hardwareInfo() throws IOException {
+ commandExecutor.addCommand(CAT_RESOURCE_PATH + "DiskTypeFastDisk");
+ diskRetriever.updateDiskType();
+ assertTrue(hardwareInfo.getFastDisk());
+ }
+
+ @Test
+ public void updateDiskSize__should_store_diskSize_in_hardwareInfo() throws IOException {
+ commandExecutor.addCommand(CAT_RESOURCE_PATH + "filesize");
+ diskRetriever.updateDiskSize();
+ double expectedSize = 63D;
+ assertEquals(expectedSize, hardwareInfo.getMinDiskAvailableGb(), DELTA);
+ }
+
+ @Test
+ public void parseDiskType_should_find_fast_disk() throws Exception {
+ diskRetriever = new DiskRetriever(hardwareInfo, commandExecutor);
+ ArrayList<String> mockOutput = commandExecutor.outputFromString("Name Rota \nsda 0");
+ ParseResult parseResult = diskRetriever.parseDiskType(mockOutput);
+ ParseResult expectedParseResult = new ParseResult("sda", "0");
+ assertEquals(expectedParseResult, parseResult);
+ }
+
+ @Test
+ public void parseDiskType_should_not_find_fast_disk() throws Exception {
+ ArrayList<String> mockOutput = commandExecutor.outputFromString("Name Rota \nsda 1");
+ ParseResult parseResult = diskRetriever.parseDiskType(mockOutput);
+ ParseResult expectedParseResult = new ParseResult("sda", "1");
+ assertEquals(expectedParseResult, parseResult);
+ }
+
+ @Test
+ public void parseDiskType_with_invalid_output_stream_should_not_find_disk_type() throws Exception {
+ ArrayList<String> mockOutput = commandExecutor.outputFromString("Name Rota \nsda x");
+ ParseResult parseResult = diskRetriever.parseDiskType(mockOutput);
+ ParseResult expectedParseResult = new ParseResult("sda", "x");
+ assertEquals(expectedParseResult, parseResult);
+ mockOutput = commandExecutor.outputFromString("Name Rota");
+ parseResult = diskRetriever.parseDiskType(mockOutput);
+ expectedParseResult = new ParseResult("invalid", "invalid");
+ assertEquals(expectedParseResult, parseResult);
+ }
+
+ @Test
+ public void parseDiskSize_should_find_size_from_file_and_insert_into_parseResult() throws Exception {
+ String filepath = "src/test/java/com/yahoo/vespa/hosted/node/verification/spec/resources/filesize";
+ ArrayList<String> mockOutput = MockCommandExecutor.readFromFile(filepath);
+ ParseResult parseResult = diskRetriever.parseDiskSize(mockOutput);
+ ParseResult expectedParseResult = new ParseResult("44G", "63G");
+ assertEquals(expectedParseResult, parseResult);
+ }
+
+} \ No newline at end of file