public NavigatorFixture() { _trace = new StringWriter(); _vmA = new ViewModelA(_trace); _vmB = new ViewModelB(_trace); _vmC = new ViewModelC(_trace); _vA = new ViewA { BindingContext = _vmA, Title = "a" }; _vB = new ViewB { BindingContext = _vmB, Title = "b" }; _vC = new ViewC { BindingContext = _vmC, Title = "c" }; _navigationPage = new NavigationPage(_vA); var pageMock = new Mock <IPage>(); pageMock.Setup(p => p.Navigation).Returns(() => _navigationPage.CurrentPage.Navigation); var viewFactoryMock = new Mock <IViewFactory>(); viewFactoryMock.Setup(vf => vf.Resolve(It.IsAny <Action <ViewModelA> >())).Returns(() => _vA); viewFactoryMock.Setup(vf => vf.Resolve(It.IsAny <Action <ViewModelB> >())).Returns(() => _vB); viewFactoryMock.Setup(vf => vf.Resolve(It.IsAny <Action <ViewModelC> >())).Returns(() => _vC); ViewModelA unusedA; ViewModelB unusedB; ViewModelC unusedC; viewFactoryMock.Setup(vf => vf.Resolve(out unusedA, It.IsAny <Action <ViewModelA> >())); viewFactoryMock.Setup(vf => vf.Resolve(out unusedB, It.IsAny <Action <ViewModelB> >())) .OutCallback((out ViewModelB vm, Action <ViewModelB> setStateAction) => vm = _vmB) .Returns(() => _vB); viewFactoryMock.Setup(vf => vf.Resolve(out unusedC, It.IsAny <Action <ViewModelC> >())) .OutCallback((out ViewModelC vm, Action <ViewModelC> setStateAction) => vm = _vmC) .Returns(() => _vC); viewFactoryMock.Setup(vf => vf.Resolve(_vmA)).Returns(_vA); viewFactoryMock.Setup(vf => vf.Resolve(_vmB)).Returns(_vB); viewFactoryMock.Setup(vf => vf.Resolve(_vmC)).Returns(_vC); _navigator = new Navigator(pageMock.Object, viewFactoryMock.Object); }
public ViewModelA(IService service, ViewModelC viewModelC) { this.service = service; this.viewModelC = viewModelC; }