public void testRefresh10s() { StringBuilder encodedData = new StringBuilder(); TextReader dataFile = new System.IO.StreamReader(new FileInfo(System.IO.Path.Combine(policyConfigDirectory_.FullName,"testData")).OpenWrite()); // Use "try/finally instead of "try-with-resources" or "using" // which are not supported before Java 7. try { String line; while ((line = dataFile.readLine()) != null) encodedData.append(line); } finally { dataFile.close(); } byte[] decodedData = net.named_data.jndn.util.Common.base64Decode(encodedData.toString()); Data data = new Data(); data.wireDecode(new Blob(decodedData, false)); // This test is needed, since the KeyChain will express interests in unknown // certificates. VerificationResult vr = doVerify(policyManager_, data); AssertTrue( "ConfigPolicyManager did not create ValidationRequest for unknown certificate", vr.hasFurtherSteps_); AssertEquals( "ConfigPolicyManager called success callback with pending ValidationRequest", 0, vr.successCount_); AssertEquals( "ConfigPolicyManager called failure callback with pending ValidationRequest", 0, vr.failureCount_); // Now save the cert data to our anchor directory, and wait. // We have to sign it with the current identity or the policy manager will // create an interest for the signing certificate. IdentityCertificate cert = new IdentityCertificate(); byte[] certData = net.named_data.jndn.util.Common.base64Decode(CERT_DUMP); cert.wireDecode(new Blob(certData, false)); keyChain_.signByIdentity(cert, identityName_); Blob signedCertBlob = cert.wireEncode(); String encodedCert = net.named_data.jndn.util.Common.base64Encode(signedCertBlob .getImmutableArray()); BufferedStream certFile = new BufferedStream(new System.IO.StreamWriter(testCertFile_.OpenRead())); try { certFile.Write(encodedCert,0,encodedCert.Substring(0,encodedCert.Length)); certFile.flush(); } finally { certFile.close(); } // Still too early for refresh to pick it up. vr = doVerify(policyManager_, data); AssertTrue("ConfigPolicyManager refresh occured sooner than specified", vr.hasFurtherSteps_); AssertEquals( "ConfigPolicyManager called success callback with pending ValidationRequest", 0, vr.successCount_); AssertEquals( "ConfigPolicyManager called failure callback with pending ValidationRequest", 0, vr.failureCount_); ILOG.J2CsMapping.Threading.ThreadWrapper.sleep(6000); // Now we should find it. vr = doVerify(policyManager_, data); AssertFalse("ConfigPolicyManager did not refresh certificate store", vr.hasFurtherSteps_); AssertEquals("Verification success called " + vr.successCount_ + " times instead of 1", 1, vr.successCount_); AssertEquals("ConfigPolicyManager did not verify valid signed data", 0, vr.failureCount_); }