public void Initialize() { var context = new Mock <IContextAware>(); Func <string, IDisposable> disposeFunc = s => new MockDisposable(); var view = new Mock <IScriptView>(); { view.SetupProperty(v => v.Model); } var syntaxVerifier = new Mock <ISyntaxVerifier>(); var scriptHost = new Mock <IHostScripts>(); { scriptHost.Setup(s => s.VerifySyntax(It.IsAny <ScriptLanguage>())) .Returns(syntaxVerifier.Object); } var parameter = new ScriptParameter(context.Object); var container = new Mock <IDependencyInjectionProxy>(); { container.Setup(c => c.Resolve <IContextAware>()) .Returns(context.Object); container.Setup(c => c.Resolve <IHostScripts>()) .Returns(scriptHost.Object); container.Setup(c => c.Resolve <RunScriptCommand>()) .Returns(new RunScriptCommand(scriptHost.Object)); container.Setup(c => c.Resolve <CancelScriptRunCommand>()) .Returns(new CancelScriptRunCommand(scriptHost.Object, disposeFunc)); container.Setup(c => c.Resolve <CloseScriptCommand>()) .Returns(new CloseScriptCommand(scriptHost.Object, disposeFunc)); container.Setup(c => c.Resolve <CloseViewCommand>(It.IsAny <Autofac.Core.Parameter[]>())) .Returns(new CloseViewCommand(new Mock <IEventAggregator>().Object, "a", new ScriptParameter(context.Object))); container.Setup(c => c.Resolve <NewScriptCommand>(It.IsAny <Autofac.Core.Parameter[]>())) .Returns( new NewScriptCommand( scriptHost.Object, () => new Tuple <bool, ScriptDescriptionModel>(false, null), (m, s) => { }, disposeFunc)); container.Setup(c => c.Resolve <ISyntaxVerifier>()) .Returns(syntaxVerifier.Object); container.Setup(c => c.Resolve <OpenScriptCommand>(It.IsAny <Autofac.Core.Parameter[]>())) .Returns( new OpenScriptCommand( scriptHost.Object, () => new Tuple <FileInfo, ScriptDescriptionModel>(null, null), (s, f, v) => { }, disposeFunc)); } var presenter = new ScriptPresenter(container.Object); ((IPresenter)presenter).Initialize(view.Object, parameter); Assert.AreSame(view.Object, presenter.View); Assert.AreSame(parameter, presenter.Parameter); view.VerifySet(v => v.Model = It.IsAny <ScriptModel>(), Times.Once()); }
public void Initialize() { var context = new Mock<IContextAware>(); Func<string, IDisposable> disposeFunc = s => new MockDisposable(); var view = new Mock<IScriptView>(); { view.SetupProperty(v => v.Model); } var syntaxVerifier = new Mock<ISyntaxVerifier>(); var scriptHost = new Mock<IHostScripts>(); { scriptHost.Setup(s => s.VerifySyntax(It.IsAny<ScriptLanguage>())) .Returns(syntaxVerifier.Object); } var parameter = new ScriptParameter(context.Object); var container = new Mock<IDependencyInjectionProxy>(); { container.Setup(c => c.Resolve<IContextAware>()) .Returns(context.Object); container.Setup(c => c.Resolve<IHostScripts>()) .Returns(scriptHost.Object); container.Setup(c => c.Resolve<RunScriptCommand>()) .Returns(new RunScriptCommand(scriptHost.Object)); container.Setup(c => c.Resolve<CancelScriptRunCommand>()) .Returns(new CancelScriptRunCommand(scriptHost.Object, disposeFunc)); container.Setup(c => c.Resolve<CloseScriptCommand>()) .Returns(new CloseScriptCommand(scriptHost.Object, disposeFunc)); container.Setup(c => c.Resolve<CloseViewCommand>(It.IsAny<Autofac.Core.Parameter[]>())) .Returns(new CloseViewCommand(new Mock<IEventAggregator>().Object, "a", new ScriptParameter(context.Object))); container.Setup(c => c.Resolve<NewScriptCommand>(It.IsAny<Autofac.Core.Parameter[]>())) .Returns( new NewScriptCommand( scriptHost.Object, () => new Tuple<bool, ScriptDescriptionModel>(false, null), (m, s) => { }, disposeFunc)); container.Setup(c => c.Resolve<ISyntaxVerifier>()) .Returns(syntaxVerifier.Object); container.Setup(c => c.Resolve<OpenScriptCommand>(It.IsAny<Autofac.Core.Parameter[]>())) .Returns( new OpenScriptCommand( scriptHost.Object, () => new Tuple<FileInfo, ScriptDescriptionModel>(null, null), (s, f, v) => { }, disposeFunc)); } var presenter = new ScriptPresenter(container.Object); ((IPresenter)presenter).Initialize(view.Object, parameter); Assert.AreSame(view.Object, presenter.View); Assert.AreSame(parameter, presenter.Parameter); view.VerifySet(v => v.Model = It.IsAny<ScriptModel>(), Times.Once()); }