public boolean apply(Instance instance) { String serialPortContents = instanceApi.getSerialPortOutput(instance.name(), 4).contents(); if (!serialPortContents.startsWith("{\"ready\":true")) { return false; } String[] contentEntries = serialPortContents.split("\n"); passwordDict.clear(); passwordDict.putAll(new Gson().fromJson(contentEntries[contentEntries.length - 1], Map.class)); passwordDict.put("passwordDictContentEntries", contentEntries[contentEntries.length - 1]); return passwordDict.get("encryptedPassword") != null; } }, 10 * 60, 30, TimeUnit.SECONDS).apply(instance.get()); // Notice that timeoutDuration should be less than EXPIRE_DURATION
public boolean apply(Instance instance) { String serialPortContents = instanceApi.getSerialPortOutput(instance.name(), 4).contents(); if (!serialPortContents.startsWith("{\"ready\":true")) { return false; } String[] contentEntries = serialPortContents.split("\n"); passwordDict.clear(); passwordDict.putAll(new Gson().fromJson(contentEntries[contentEntries.length - 1], Map.class)); passwordDict.put("passwordDictContentEntries", contentEntries[contentEntries.length - 1]); return passwordDict.get("encryptedPassword") != null; } }, 10 * 60, 30, TimeUnit.SECONDS).apply(instance.get()); // Notice that timeoutDuration should be less than EXPIRE_DURATION
public boolean apply(Instance instance) { String serialPortContents = instanceApi.getSerialPortOutput(instance.name(), 4).contents(); List<String> contentEntries = Splitter.on('\n').splitToList(serialPortContents); Optional<String> retrievedPassword = tryFind( filter(transform(contentEntries, deserializeSerialOutput(json)), notNull()), HasEncryptedPassword) .transform(ExtractEncryptedPassword); if (retrievedPassword.isPresent()) { encryptedPassword.set(retrievedPassword.get()); } return retrievedPassword.isPresent(); } // Notice that timeoutDuration should be less than EXPIRE_DURATION
expect(operation.httpErrorStatusCode()).andReturn(null); expect(instanceApi.getSerialPortOutput(instance.name(), 4)).andReturn(serialPortOutput).atLeastOnce(); expect(serialPortOutput.contents()).andReturn("{\"ready\":true,\"version\":\"Microsoft Windows NT 6.2.9200.0\"}\n" + "{\"encryptedPassword\":\"" + encryptedPass + "\",\"exponent\":\"" + exponentString + "\",\"passwordFound\":true,\"userName\":\"Administrator\"}"); expect(crypto.cipher("RSA/NONE/OAEPPadding")).andReturn(bcCrypto.cipher("RSA/NONE/OAEPPadding"));
public boolean apply(Instance instance) { String serialPortContents = instanceApi.getSerialPortOutput(instance.name(), 4).contents(); List<String> contentEntries = Splitter.on('\n').splitToList(serialPortContents); Optional<String> retrievedPassword = tryFind( filter(transform(contentEntries, deserializeSerialOutput(json)), notNull()), HasEncryptedPassword) .transform(ExtractEncryptedPassword); if (retrievedPassword.isPresent()) { encryptedPassword.set(retrievedPassword.get()); } return retrievedPassword.isPresent(); } // Notice that timeoutDuration should be less than EXPIRE_DURATION
@Test(groups = "live", dependsOnMethods = "testInsertInstance") public void testGetSerialPortOutput() { SerialPortOutput output = api().getSerialPortOutput(INSTANCE_NAME); assertNotNull(output); assertNotNull(output.contents()); }