public void QueryState_WithNoItemInContext_ReturnsDisabled() { // Arrange var sheer = Substitute.For<ISheerResponse>(); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); var context = new CommandContext(); // Act var result = command.QueryState(context); // Assert Assert.Equal(CommandState.Disabled, result); }
public void Run_WithIsPostBackTrueAndHasResultTrue_CallsDialogResultProcessor() { // Arrange var result = new ID().ToString(); var item = MasterFakesFactory.CreateFakeItem(); var args = Substitute.For<ClientPipelineArgs>(); args.Parameters = new NameValueCollection {{"items", item.Uri.ToString()}}; args.IsPostBack = true; args.Result = result; var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(true); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert string message; processor.Received().ProcessResult(Arg.Is<Item>(i => i.ID == item.ID), result, out message); }
public void Run_WithIsPostBackTrueAndHasResultTrueAndResultProcessorReturnsFalse_CallsAlertWithMessage() { // Arrange var result = new ID().ToString(); var item = MasterFakesFactory.CreateFakeItem(); var args = Substitute.For<ClientPipelineArgs>(); args.Parameters = new NameValueCollection {{"items", item.Uri.ToString()}}; args.IsPostBack = true; args.Result = result; string message; var expectedAlert = "This is the expected alert message!"; var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(true); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); processor.ProcessResult(Arg.Any<Item>(), Arg.Any<string>(), out message) .Returns(false) .AndDoes(ci => ci[2] = expectedAlert); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert sheer.Received().Alert(expectedAlert); }
Run_WithIsPostBackFalseAndDialogLocatorReturnsValue_CallsShowModalDialogWithReturnedValueAndCallsWaitForPostBack () { // Arrange var item = MasterFakesFactory.CreateFakeItem(); var args = Substitute.For<ClientPipelineArgs>(); args.Parameters = new NameValueCollection {{"items", item.Uri.ToString()}}; args.IsPostBack = false; var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(true); var contextChecker = Substitute.For<ICommandContextChecker>(); var url = "/This/is/my/dialog/url"; var locator = Substitute.For<IDialogLocator>(); locator.GetDialogUrl(Arg.Any<Item>()).Returns(url); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert sheer.Received().ShowModalDialog(url); args.Received().WaitForPostBack(); }
public void Run_WithIsPostBackFalseAndDialogLocatorReturnsNull_CallsAlertButNotShowModalDialog() { // Arrange var item = MasterFakesFactory.CreateFakeItem(); var args = Substitute.For<ClientPipelineArgs>(); args.Parameters = new NameValueCollection {{"items", item.Uri.ToString()}}; args.IsPostBack = false; var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(true); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); locator.GetDialogUrl(Arg.Any<Item>()).Returns((string) null); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert sheer.Received().Alert(Arg.Any<string>()); sheer.DidNotReceive().ShowModalDialog(Arg.Any<string>()); }
public void Run_WithIsPostBackFalse_CallsDialogLocatorWithItemFromPipelineArgs() { // Arrange var item = MasterFakesFactory.CreateFakeItem(); var args = Substitute.For<ClientPipelineArgs>(); args.Parameters = new NameValueCollection {{"items", item.Uri.ToString()}}; args.IsPostBack = false; var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(true); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert locator.Received().GetDialogUrl(Arg.Is<Item>(i => i.ID == item.ID)); }
public void Run_WhenCheckModifiedReturnsFalse_DoesNotDoAnything() { // Arrange var args = Substitute.For<ClientPipelineArgs>(); var sheer = Substitute.For<ISheerResponse>(); sheer.CheckModified().Returns(false); var contextChecker = Substitute.For<ICommandContextChecker>(); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); // Act command.Run(args); // Assert sheer.DidNotReceive().Alert(Arg.Any<string>()); sheer.DidNotReceive().ShowModalDialog(Arg.Any<string>()); locator.DidNotReceive().GetDialogUrl(Arg.Any<Item>()); string message; processor.DidNotReceive().ProcessResult(Arg.Any<Item>(), Arg.Any<string>(), out message); }
public void QueryState_WhenContextCheckerReturnsTrue_ReturnsEnabled() { // Arrange var sheer = Substitute.For<ISheerResponse>(); var contextChecker = Substitute.For<ICommandContextChecker>(); contextChecker.CanExecute(Arg.Any<Item>()).Returns(true); var locator = Substitute.For<IDialogLocator>(); var processor = Substitute.For<IDialogResultProcessor>(); var command = new SelectBaseLayout(sheer, contextChecker, locator, processor); var context = new CommandContext(MasterFakesFactory.CreateFakeItem()); // Act var result = command.QueryState(context); // Assert Assert.Equal(CommandState.Enabled, result); }