public virtual void TestSnapshotMethods() { string dir = "/testNamenodeRetryCache/testCreateSnapshot/src"; ResetCall(); nnRpc.Mkdirs(dir, perm, true); nnRpc.AllowSnapshot(dir); // Test retry of create snapshot NewCall(); string name = nnRpc.CreateSnapshot(dir, "snap1"); NUnit.Framework.Assert.AreEqual(name, nnRpc.CreateSnapshot(dir, "snap1")); NUnit.Framework.Assert.AreEqual(name, nnRpc.CreateSnapshot(dir, "snap1")); NUnit.Framework.Assert.AreEqual(name, nnRpc.CreateSnapshot(dir, "snap1")); // Non retried calls should fail NewCall(); try { nnRpc.CreateSnapshot(dir, "snap1"); NUnit.Framework.Assert.Fail("testSnapshotMethods expected exception is not thrown" ); } catch (IOException) { } // exptected // Test retry of rename snapshot NewCall(); nnRpc.RenameSnapshot(dir, "snap1", "snap2"); nnRpc.RenameSnapshot(dir, "snap1", "snap2"); nnRpc.RenameSnapshot(dir, "snap1", "snap2"); // Non retried calls should fail NewCall(); try { nnRpc.RenameSnapshot(dir, "snap1", "snap2"); NUnit.Framework.Assert.Fail("testSnapshotMethods expected exception is not thrown" ); } catch (IOException) { } // expected // Test retry of delete snapshot NewCall(); nnRpc.DeleteSnapshot(dir, "snap2"); nnRpc.DeleteSnapshot(dir, "snap2"); nnRpc.DeleteSnapshot(dir, "snap2"); // Non retried calls should fail NewCall(); try { nnRpc.DeleteSnapshot(dir, "snap2"); NUnit.Framework.Assert.Fail("testSnapshotMethods expected exception is not thrown" ); } catch (IOException) { } }