public void TestConstruction() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); model.Name.Should().NotBeEmpty(); model.PageLayout.Should().Be(PageLayout.WrapHorizontal); model.Layout.Should().NotBeNull(); model.Layout.Should().BeOfType <HorizontalWidgetLayoutViewModel>(); }
public void TestCtor() { var model = new AnalysisPageViewModel(_template, _analyser.Object); model.Name.Should().NotBeEmpty(); model.PageLayout.Should().Be(PageLayout.WrapHorizontal); model.Layout.Should().NotBeNull(); model.Layout.Should().BeOfType <HorizontalWidgetLayoutViewModel>(); }
public void TestOnTemplateModified() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var widget = AddWidget(model); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Once, "because we've added a new widget"); widget.Raise(x => x.TemplateModified += null); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Exactly(2), "because the new widget has requested another save"); widget.Raise(x => x.TemplateModified += null); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Exactly(3), "because the new widget has requested another save"); }
private Mock <IWidgetViewModel> AddWidget(AnalysisPageViewModel model) { var widget = new Mock <IWidgetViewModel>(); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget.Object); var layout = (HorizontalWrapWidgetLayoutViewModel)model.Layout; layout.RaiseRequestAdd(factory.Object); return(widget); }
public void TestRequestAddWidget1() { var model = new AnalysisPageViewModel(_template, _analyser.Object); var layout = (HorizontalWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>().Object; var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget); layout.Widgets.Should().NotContain(widget); layout.RaiseRequestAdd(factory.Object); layout.Widgets.Should().Contain(widget); }
public void TestRequestAddWidget4() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var layout = (HorizontalWrapWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>().Object; var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget); _analysisStorage.Verify(x => x.SaveAsync(It.IsAny <AnalysisId>()), Times.Never); layout.RaiseRequestAdd(factory.Object); _analysisStorage.Verify(x => x.SaveAsync(_id), Times.Once, "because the page should've saved the analysis now that a widget's been added"); }
public void TestRemoveWidget() { var model = new AnalysisPageViewModel(_template, _analyser.Object); var layout = (HorizontalWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>(); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget.Object); layout.RaiseRequestAdd(factory.Object); layout.Widgets.Should().Contain(widget.Object); widget.Raise(x => x.OnDelete += null, widget.Object); layout.Widgets.Should().BeEmpty(); _analyser.Verify(x => x.Remove(It.IsAny <IDataSourceAnalyser>()), Times.Once, "because the analyser created with that widget should've been removed again"); }
public void TestChangeLayout() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); model.PageLayout = PageLayout.Columns; model.Layout.Should().BeOfType <ColumnWidgetLayoutViewModel>(); _template.Layout.Should().BeOfType <ColumnWidgetLayoutTemplate>("because the template should have been modified"); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Once); model.PageLayout = PageLayout.Rows; model.Layout.Should().BeOfType <RowWidgetLayoutViewModel>(); _template.Layout.Should().BeOfType <RowWidgetLayoutTemplate>("because the template should have been modified"); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Exactly(2)); model.PageLayout = PageLayout.WrapHorizontal; model.Layout.Should().BeOfType <HorizontalWrapWidgetLayoutViewModel>(); _template.Layout.Should().BeOfType <HorizontalWidgetLayoutTemplate>("because the template should have been modified"); _analysisStorage.Verify(x => x.SaveAsync(It.Is <AnalysisId>(y => y == _id)), Times.Exactly(3)); }
public void TestRequestAddWidget3() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var layout = (HorizontalWrapWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>().Object; var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget); layout.RaiseRequestAdd(factory.Object); model.PageLayout = PageLayout.None; model.PageLayout = PageLayout.WrapHorizontal; model.Layout.Should().NotBeSameAs(layout); ((HorizontalWrapWidgetLayoutViewModel)model.Layout).Widgets.Should().Contain(x => x.InnerViewModel == widget); }
public void TestRequestAddWidget2() { var model = new AnalysisPageViewModel(_template, _analyser.Object); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns((IWidgetTemplate template, IDataSourceAnalyser analyser) => { var widget = new Mock <IWidgetViewModel>(); widget.Setup(x => x.Template).Returns(template); return(widget.Object); }); var layout = (HorizontalWidgetLayoutViewModel)model.Layout; layout.RaiseRequestAdd(factory.Object); _template.Widgets.Should().HaveCount(1); _template.Widgets.First().Should().NotBeNull(); }
public void TestRemoveWidget1() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var layout = (HorizontalWrapWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>(); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget.Object); layout.RaiseRequestAdd(factory.Object); var viewModel = layout.Widgets.FirstOrDefault(x => x.InnerViewModel == widget.Object); viewModel.Should().NotBeNull(); viewModel.DeleteCommand.Execute(null); layout.Widgets.Should().BeEmpty(); _analyser.Verify(x => x.Remove(It.IsAny <IDataSourceAnalyser>()), Times.Once, "because the analyser created with that widget should've been removed again"); }
public void TestRemoveWidget2() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var layout = (HorizontalWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>(); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget.Object); _analysisStorage.Verify(x => x.Save(It.IsAny <AnalysisId>()), Times.Never); layout.RaiseRequestAdd(factory.Object); _analysisStorage.Verify(x => x.Save(_id), Times.Once); layout.Widgets.Should().Contain(widget.Object); widget.Raise(x => x.OnDelete += null, widget.Object); _analysisStorage.Verify(x => x.Save(_id), Times.Exactly(2), "because the page should've saved the analysis now that a widget's been removed"); }
public void TestRemoveWidget2() { var model = new AnalysisPageViewModel(_id, _template, _analyser.Object, _analysisStorage.Object, _pluginRegistry); var layout = (HorizontalWrapWidgetLayoutViewModel)model.Layout; var widget = new Mock <IWidgetViewModel>(); var factory = new Mock <IWidgetPlugin>(); factory.Setup(x => x.CreateViewModel(It.IsAny <IWidgetTemplate>(), It.IsAny <IDataSourceAnalyser>())) .Returns(widget.Object); _analysisStorage.Verify(x => x.SaveAsync(It.IsAny <AnalysisId>()), Times.Never); layout.RaiseRequestAdd(factory.Object); _analysisStorage.Verify(x => x.SaveAsync(_id), Times.Once); var viewModel = layout.Widgets.FirstOrDefault(x => x.InnerViewModel == widget.Object); viewModel.Should().NotBeNull(); viewModel.DeleteCommand.Execute(null); _analysisStorage.Verify(x => x.SaveAsync(_id), Times.Exactly(2), "because the page should've saved the analysis now that a widget's been removed"); }