// check maximum depth is handled /// <exception cref="System.IO.IOException"/> public virtual void ProcessArgumentsMaxDepth() { List <PathData> items = CreateDirectories(); Org.Apache.Hadoop.FS.Shell.Find.Find find = new Org.Apache.Hadoop.FS.Shell.Find.Find (); find.GetOptions().SetMaxDepth(1); find.SetConf(conf); TextWriter @out = Org.Mockito.Mockito.Mock <TextWriter>(); find.GetOptions().SetOut(@out); TextWriter err = Org.Mockito.Mockito.Mock <TextWriter>(); find.GetOptions().SetErr(err); Expression expr = Org.Mockito.Mockito.Mock <Expression>(); Org.Mockito.Mockito.When(expr.Apply((PathData)Matchers.Any(), Matchers.AnyInt())) .ThenReturn(Result.Pass); TestFind.FileStatusChecker fsCheck = Org.Mockito.Mockito.Mock <TestFind.FileStatusChecker >(); Expression test = new TestFind.TestExpression(this, expr, fsCheck); find.SetRootExpression(test); find.ProcessArguments(items); InOrder inOrder = Org.Mockito.Mockito.InOrder(expr); inOrder.Verify(expr).SetOptions(find.GetOptions()); inOrder.Verify(expr).Prepare(); inOrder.Verify(expr).Apply(item1, 0); inOrder.Verify(expr).Apply(item1a, 1); inOrder.Verify(expr).Apply(item1b, 1); inOrder.Verify(expr).Apply(item2, 0); inOrder.Verify(expr).Apply(item3, 0); inOrder.Verify(expr).Apply(item4, 0); inOrder.Verify(expr).Apply(item5, 0); inOrder.Verify(expr).Apply(item5a, 1); inOrder.Verify(expr).Apply(item5b, 1); inOrder.Verify(expr).Apply(item5c, 1); inOrder.Verify(expr).Apply(item5d, 1); inOrder.Verify(expr).Apply(item5e, 1); inOrder.Verify(expr).Finish(); Org.Mockito.Mockito.VerifyNoMoreInteractions(expr); InOrder inOrderFsCheck = Org.Mockito.Mockito.InOrder(fsCheck); inOrderFsCheck.Verify(fsCheck).Check(item1.stat); inOrderFsCheck.Verify(fsCheck).Check(item1a.stat); inOrderFsCheck.Verify(fsCheck).Check(item1b.stat); inOrderFsCheck.Verify(fsCheck).Check(item2.stat); inOrderFsCheck.Verify(fsCheck).Check(item3.stat); inOrderFsCheck.Verify(fsCheck).Check(item4.stat); inOrderFsCheck.Verify(fsCheck).Check(item5.stat); inOrderFsCheck.Verify(fsCheck).Check(item5a.stat); inOrderFsCheck.Verify(fsCheck).Check(item5b.stat); inOrderFsCheck.Verify(fsCheck).Check(item5c.stat); inOrderFsCheck.Verify(fsCheck).Check(item5d.stat); inOrderFsCheck.Verify(fsCheck).Check(item5e.stat); Org.Mockito.Mockito.VerifyNoMoreInteractions(fsCheck); Org.Mockito.Mockito.VerifyNoMoreInteractions(@out); Org.Mockito.Mockito.VerifyNoMoreInteractions(err); }
// check follow arg link option is recognized /// <exception cref="System.IO.IOException"/> public virtual void ProcessOptionsFollowArgLink() { Org.Apache.Hadoop.FS.Shell.Find.Find find = new Org.Apache.Hadoop.FS.Shell.Find.Find (); string args = "-H path"; find.ProcessOptions(GetArgs(args)); NUnit.Framework.Assert.IsFalse(find.GetOptions().IsFollowLink()); Assert.True(find.GetOptions().IsFollowArgLink()); }
// check follow arg link option is recognized /// <exception cref="System.IO.IOException"/> public virtual void ProcessOptionsFollowLinkFollowArgLink() { Org.Apache.Hadoop.FS.Shell.Find.Find find = new Org.Apache.Hadoop.FS.Shell.Find.Find (); string args = "-L -H path"; find.ProcessOptions(GetArgs(args)); Assert.True(find.GetOptions().IsFollowLink()); // follow link option takes precedence over follow arg link NUnit.Framework.Assert.IsFalse(find.GetOptions().IsFollowArgLink()); }
// check symlinks given as path arguments are processed correctly with the // follow option /// <exception cref="System.IO.IOException"/> public virtual void ProcessArgumentsOptionFollow() { List <PathData> items = CreateDirectories(); Org.Apache.Hadoop.FS.Shell.Find.Find find = new Org.Apache.Hadoop.FS.Shell.Find.Find (); find.GetOptions().SetFollowLink(true); find.SetConf(conf); TextWriter @out = Org.Mockito.Mockito.Mock <TextWriter>(); find.GetOptions().SetOut(@out); TextWriter err = Org.Mockito.Mockito.Mock <TextWriter>(); find.GetOptions().SetErr(err); Expression expr = Org.Mockito.Mockito.Mock <Expression>(); Org.Mockito.Mockito.When(expr.Apply((PathData)Matchers.Any(), Matchers.AnyInt())) .ThenReturn(Result.Pass); TestFind.FileStatusChecker fsCheck = Org.Mockito.Mockito.Mock <TestFind.FileStatusChecker >(); Expression test = new TestFind.TestExpression(this, expr, fsCheck); find.SetRootExpression(test); find.ProcessArguments(items); InOrder inOrder = Org.Mockito.Mockito.InOrder(expr); inOrder.Verify(expr).SetOptions(find.GetOptions()); inOrder.Verify(expr).Prepare(); inOrder.Verify(expr).Apply(item1, 0); inOrder.Verify(expr).Apply(item1a, 1); inOrder.Verify(expr).Apply(item1aa, 2); inOrder.Verify(expr).Apply(item1b, 1); inOrder.Verify(expr).Apply(item2, 0); inOrder.Verify(expr).Apply(item3, 0); inOrder.Verify(expr).Apply(item4, 0); inOrder.Verify(expr).Apply(item5, 0); inOrder.Verify(expr).Apply(item5a, 1); inOrder.Verify(expr).Apply(item5b, 1); // triggers infinite loop message inOrder.Verify(expr).Apply(item5c, 1); inOrder.Verify(expr).Apply(item5ca, 2); inOrder.Verify(expr).Apply(item5d, 1); inOrder.Verify(expr).Apply(item5ca, 2); // following item5d symlink inOrder.Verify(expr).Apply(item5e, 1); inOrder.Verify(expr).Finish(); Org.Mockito.Mockito.VerifyNoMoreInteractions(expr); InOrder inOrderFsCheck = Org.Mockito.Mockito.InOrder(fsCheck); inOrderFsCheck.Verify(fsCheck).Check(item1.stat); inOrderFsCheck.Verify(fsCheck).Check(item1a.stat); inOrderFsCheck.Verify(fsCheck).Check(item1aa.stat); inOrderFsCheck.Verify(fsCheck).Check(item1b.stat); inOrderFsCheck.Verify(fsCheck).Check(item2.stat); inOrderFsCheck.Verify(fsCheck, Org.Mockito.Mockito.Times(2)).Check(item3.stat); inOrderFsCheck.Verify(fsCheck).Check(item5.stat); inOrderFsCheck.Verify(fsCheck).Check(item1b.stat); inOrderFsCheck.Verify(fsCheck).Check(item5.stat); inOrderFsCheck.Verify(fsCheck).Check(item5c.stat); inOrderFsCheck.Verify(fsCheck).Check(item5ca.stat); inOrderFsCheck.Verify(fsCheck).Check(item5c.stat); inOrderFsCheck.Verify(fsCheck, Org.Mockito.Mockito.Times(2)).Check(item5ca.stat); Org.Mockito.Mockito.VerifyNoMoreInteractions(fsCheck); Org.Mockito.Mockito.VerifyNoMoreInteractions(@out); Org.Mockito.Mockito.Verify(err).WriteLine("Infinite loop ignored: " + item5b.ToString () + " -> " + item5.ToString()); Org.Mockito.Mockito.VerifyNoMoreInteractions(err); }