public void ActivityDesignerViewModel_Collapse_HelpButtonGetsRemovedOnCollapse() { //------------Setup for test-------------------------- var mockModelItem = GenerateMockModelItem(); var setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock(); var errorInfo = new ErrorInfo { InstanceID = new Guid() }; var envRepo = new Mock <IServerRepository>(); envRepo.Setup(e => e.ActiveServer).Returns(setupResourceModelMock.Object.Environment); IObservableReadOnlyList <IErrorInfo> testErrors = new ObservableReadOnlyList <IErrorInfo> { errorInfo }; setupResourceModelMock.Setup(c => c.Errors).Returns(testErrors); setupResourceModelMock.Setup(c => c.GetErrors(It.IsAny <Guid>())).Returns(new List <IErrorInfo> { errorInfo }); var viewModel = new ServiceDesignerViewModel(mockModelItem.Object, setupResourceModelMock.Object, envRepo.Object, new Mock <IEventAggregator>().Object, new SynchronousAsyncWorker()); Assert.AreEqual(1, viewModel.TitleBarToggles.Count); viewModel.ShowLarge = true; Assert.AreEqual(1, viewModel.TitleBarToggles.Count); //------------Execute Test--------------------------- viewModel.Collapse(); //------------Assert Results------------------------- Assert.AreEqual(1, viewModel.TitleBarToggles.Count); }
static ServiceDesignerViewModel GenerateServiceDesignerViewModel(string name, Mock<IContextualResourceModel> myModel = null, string type = null, string serviceURI = null) { var resourceID = Guid.NewGuid(); var rootModel = myModel; if (myModel == null) { rootModel = new Mock<IContextualResourceModel>(); rootModel.Setup(m => m.Errors.Count).Returns(0); rootModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(new List<IErrorInfo>()); } var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand, ServiceName = name }; if (type != null) { activity.Type = type; } if (serviceURI != null) { activity.ServiceUri = serviceURI; } var modelItem = CreateModelItem(activity); // setup the resource repository var resourceRepository = new Mock<IResourceRepository>(); resourceRepository.Setup(r => r.IsLoaded).Returns(true); resourceRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), true, false)).Returns(rootModel.Object); // setup active environment var activeEnvironment = new Mock<IEnvironmentModel>(); activeEnvironment.Setup(a => a.IsLocalHostCheck()).Returns(false); activeEnvironment.Setup(a => a.IsLocalHost).Returns(false); activeEnvironment.Setup(a => a.HasLoadedResources).Returns(true); activeEnvironment.Setup(a => a.IsConnected).Returns(true); activeEnvironment.Setup(a => a.ResourceRepository).Returns(resourceRepository.Object); // setup the rootModel to return the insane levels of nested junk rootModel.Setup(r => r.Environment).Returns(activeEnvironment.Object); // setup the environment repository var environmentRepository = new Mock<IEnvironmentRepository>(); environmentRepository.Setup(e => e.ActiveEnvironment).Returns(activeEnvironment.Object); // ReSharper disable ObjectCreationAsStatement var model = new ServiceDesignerViewModel(modelItem, rootModel.Object, environmentRepository.Object, new Mock<IEventAggregator>().Object); // ReSharper restore ObjectCreationAsStatement return model; }
public void ServiceDesingerViewModel_IsAsyncVisible_NotWorkflowResource_False() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var resourceModel = CreateResourceModel(Guid.Empty, false); resourceModel.Setup(model => model.ResourceType).Returns(Studio.Core.AppResources.Enums.ResourceType.Service); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(Guid.Empty); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var resourceType = resourceModel.Object.ResourceType.ToString(); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand, Type = new InArgument<string>(resourceType) }; var modelItem = CreateModelItem(activity); //------------Execute Test--------------------------- var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object); //------------Assert Results------------------------- Assert.IsFalse(viewModel.IsAsyncVisible); }
public void ServiceDesingerViewModel_SetRunWorkflowAsync_True_OutputMappingEnabledFalse() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var resourceModel = CreateResourceModel(Guid.Empty, false); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(Guid.Empty); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand }; var modelItem = CreateModelItem(activity); var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object) { RunWorkflowAsync = true }; //------------Execute Test--------------------------- //------------Assert Results------------------------- Assert.IsTrue(viewModel.RunWorkflowAsync); Assert.IsFalse(viewModel.OutputMappingEnabled); }
public void ServiceDesignerViewModel_InitializeWhenEnvironmentModelOnOtherServer_StillCorrectlySetsUp() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var resourceModel = CreateResourceModel(Guid.Empty, false); ISetup<IContextualResourceModel, string> setupResourceModel = resourceModel.Setup(model => model.DataList); setupResourceModel.Returns("<DataList><n1/></DataList>"); var rootModel = CreateResourceModel(Guid.Empty); var envRepository = new Mock<IEnvironmentRepository>(); ISetup<IEnvironmentRepository, IEnvironmentModel> setupFindSingle = envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())); setupFindSingle.Returns((IEnvironmentModel)null); ISetup<IEnvironmentRepository, IEnvironmentModel> setupActiveEnvironment = envRepository.Setup(r => r.ActiveEnvironment); setupActiveEnvironment.Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(rootModel.Object.Environment.ID), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand }; var modelItem = CreateModelItem(activity); //------------Execute Test--------------------------- var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object); //------------Assert Results------------------------- Assert.IsNotNull(viewModel.ResourceModel); }
public void ServiceDesignerViewModel_InitializeResourceIDNull_StillCorrectlySetsUp() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var resourceModel = CreateResourceModel(Guid.Empty, false); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(Guid.Empty); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand }; var modelItem = CreateModelItem(activity); //------------Execute Test--------------------------- var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object); //------------Assert Results------------------------- Assert.IsNotNull(viewModel.ResourceModel); var inputMapping = viewModel.ModelItem.GetProperty<string>("InputMapping"); var outputMapping = viewModel.ModelItem.GetProperty<string>("OutputMapping"); Assert.AreEqual("<Inputs><Input Name=\"n1\" Source=\"[[n1]]\" /></Inputs>", inputMapping); Assert.AreEqual("<Outputs><Output Name=\"n1\" MapsTo=\"[[n1]]\" Value=\"[[n1]]\" /></Outputs>", outputMapping); }
public void ServiceDesignerViewModel_WhenRemoteEnvironmentLoads_ShouldUseNameToFindEnvironment() { //------------Setup for test-------------------------- var resourceID = Guid.Empty; var connection = new Mock<IEnvironmentConnection>(); connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher()); var environmentID = Guid.NewGuid(); var environment = new Mock<IEnvironmentModel>(); environment.Setup(e => e.Connection).Returns(connection.Object); environment.Setup(e => e.ID).Returns(environmentID); environment.Setup(e => e.IsConnected).Returns(true); environment.Setup(model => model.IsLocalHost).Returns(false); environment.Setup(e => e.IsLocalHostCheck()).Returns(false); var errors = new ObservableReadOnlyList<IErrorInfo>(); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(r => r.ResourceName).Returns("TestResource").Verifiable(); resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid()); resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>")); resourceModel.Setup(m => m.Errors).Returns(errors); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.Environment).Returns(environment.Object); resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors); resourceModel.Setup(m => m.HasErrors).Returns(() => false); resourceModel.SetupProperty(m => m.IsValid); resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error)); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var resources = new Mock<IResourceRepository>(); environment.Setup(a => a.ResourceRepository).Returns(resources.Object); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(resourceID); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ServiceName = "bob", ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.Empty.ToString(), SimulationMode = SimulationMode.OnDemand, InputMapping = "<Inputs><Input Name=\"n1\" Source=\"[[n1]]\" /></Inputs>", OutputMapping = "<Outputs><Output Name=\"n1\" MapsTo=\"[[n1]]\" Value=\"[[n1]]\" /></Outputs>" }; var modelItem = CreateModelItem(activity); var worker = new Mock<IAsyncWorker>(); // ReSharper disable MaximumChainedReferences worker.Setup(a => a.Start(It.IsAny<System.Action>(), It.IsAny<System.Action>())) .Callback((System.Action a, System.Action b) => // ReSharper restore MaximumChainedReferences { a.Invoke(); b.Invoke(); } ); //------------Execute Test--------------------------- // ReSharper disable UnusedVariable var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object, worker.Object); var webFact = new Mock<IWebActivityFactory>(); var wa = new Mock<IWebActivity>(); // ReSharper disable MaximumChainedReferences webFact.Setup( a => a.CreateWebActivity(It.IsAny<Object>(), It.IsAny<IContextualResourceModel>(), It.IsAny<string>())).Returns(wa.Object).Verifiable(); // ReSharper restore MaximumChainedReferences viewModel.ActivityFactory = webFact.Object; var mappingF = new Mock<IDataMappingViewModelFactory>(); var mapping = new Mock<IDataMappingViewModel>(); mapping.Setup(a => a.GetOutputString(It.IsAny<IList<IInputOutputViewModel>>())).Returns("bob"); // ReSharper disable once MaximumChainedReferences mappingF.Setup(a => a.CreateModel(It.IsAny<IWebActivity>(), It.IsAny<NotifyCollectionChangedEventHandler>())) .Returns(mapping.Object); viewModel.MappingFactory = mappingF.Object; // ReSharper restore UnusedVariable // ReSharper disable MaximumChainedReferences // ReSharper disable MaximumChainedReferences resources.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), true, false)) .Returns(resourceModel.Object) .Callback((Expression<Func<IResourceModel, bool>> expression, bool b) => Assert.IsTrue(expression.ToString().Contains("c => (c.ResourceName == "))) .Verifiable(); // ReSharper restore MaximumChainedReferences environment.Setup(a => a.IsConnected).Returns(true); environment.Raise((a => a.ResourcesLoaded += null), new ResourcesLoadedEventArgs { Model = environment.Object }); //------------Assert Results------------------------- Assert.IsTrue(viewModel.LastValidationMemo.Errors.First().Message.Contains("Incorrect Version. The remote workflow has changed.Please refresh")); }
public void ServiceDesignerViewModel_WhenRemoteEnvironmentLoads_ShouldNotSetVersionMemoIfCorrect() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var connection = new Mock<IEnvironmentConnection>(); connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher()); var environmentID = Guid.NewGuid(); var environment = new Mock<IEnvironmentModel>(); environment.Setup(e => e.Connection).Returns(connection.Object); environment.Setup(e => e.ID).Returns(environmentID); environment.Setup(e => e.IsConnected).Returns(true); environment.Setup(model => model.IsLocalHost).Returns(false); environment.Setup(model => model.IsLocalHostCheck()).Returns(false); var errors = new ObservableReadOnlyList<IErrorInfo>(); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(r => r.ResourceName).Returns("TestResource"); resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid()); resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>")); resourceModel.Setup(m => m.Errors).Returns(errors); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.Environment).Returns(environment.Object); resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors); resourceModel.Setup(m => m.HasErrors).Returns(() => false); resourceModel.SetupProperty(m => m.IsValid); resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error)); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var resources = new Mock<IResourceRepository>(); // ReSharper disable MaximumChainedReferences resources.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), true, false)) .Callback((Expression<Func<IResourceModel, bool>> expression, bool b,bool c) => Assert.IsTrue(expression.ToString().Contains("c => (c.ID == "))) .Returns(resourceModel.Object).Verifiable(); // ReSharper restore MaximumChainedReferences environment.Setup(a => a.ResourceRepository).Returns(resources.Object); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(resourceID); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand, InputMapping = "<Inputs></Inputs>", OutputMapping = "<Outputs></Outputs>" }; var modelItem = CreateModelItem(activity); var worker = new Mock<IAsyncWorker>(); // ReSharper disable MaximumChainedReferences worker.Setup(a => a.Start(It.IsAny<System.Action>(), It.IsAny<System.Action>())).Callback( // ReSharper restore MaximumChainedReferences ( System.Action a, System.Action b) => { a.Invoke(); b.Invoke(); } ); //------------Execute Test--------------------------- // ReSharper disable UnusedVariable var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object, worker.Object); // ReSharper restore UnusedVariable environment.Setup(a => a.IsConnected).Returns(true); connection.Setup(a => a.Verify(It.IsAny<Action<ConnectResult>>(), true)).Verifiable(); environment.Raise((a => a.ResourcesLoaded += null), new ResourcesLoadedEventArgs { Model = environment.Object }); //------------Assert Results------------------------- Assert.IsTrue(viewModel.LastValidationMemo.Errors.Count == 0); }
public void ServiceDesignerViewModel_WhenResourceHasSource_ShouldGetSourceName() { //------------Setup for test-------------------------- var resourceID = Guid.NewGuid(); var connection = new Mock<IEnvironmentConnection>(); connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher()); var environmentID = Guid.NewGuid(); var environment = new Mock<IEnvironmentModel>(); environment.Setup(e => e.Connection).Returns(connection.Object); environment.Setup(e => e.ID).Returns(environmentID); environment.Setup(e => e.IsConnected).Returns(true); environment.Setup(model => model.IsLocalHost).Returns(false); environment.Setup(e => e.IsLocalHostCheck()).Returns(false); var errors = new ObservableReadOnlyList<IErrorInfo>(); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(r => r.ResourceName).Returns("TestResource"); resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid()); resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>")); resourceModel.Setup(m => m.Errors).Returns(errors); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.Environment).Returns(environment.Object); resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors); resourceModel.Setup(m => m.HasErrors).Returns(() => false); resourceModel.SetupProperty(m => m.IsValid); resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error)); resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>"); var dataListViewModel = new DataListViewModel(); dataListViewModel.InitializeDataListViewModel(resourceModel.Object); dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1")); DataListSingleton.SetDataList(dataListViewModel); var rootModel = CreateResourceModel(resourceID); var envRepository = new Mock<IEnvironmentRepository>(); envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment); envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment); var activity = new DsfActivity { ResourceID = new InArgument<Guid>(resourceID), EnvironmentID = new InArgument<Guid>(Guid.Empty), UniqueID = Guid.NewGuid().ToString(), SimulationMode = SimulationMode.OnDemand, InputMapping = "<Inputs><Input Name=\"n1\" Source=\"[[n1]]\" /></Inputs>", OutputMapping = "<Outputs><Output Name=\"n1\" MapsTo=\"[[n1]]\" Value=\"[[n1]]\" /></Outputs>" }; var modelItem = CreateModelItem(activity); var resRepo = new Mock<IResourceRepository>(); var srcRes = new Mock<IResourceModel>(); srcRes.Setup(a => a.DisplayName).Returns("bob"); resRepo.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), false, false)).Returns(srcRes.Object); environment.Setup(a => a.ResourceRepository).Returns(resRepo.Object); //------------Execute Test--------------------------- var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object); //------------Assert Results------------------------- Assert.AreEqual("bob", viewModel.Properties.FirstOrDefault(a => a.Key == "Source :").Value); }
public void ActivityDesignerViewModel_Collapse_HelpButtonGetsRemovedOnCollapse() { //------------Setup for test-------------------------- var mockModelItem = GenerateMockModelItem(); Mock<IContextualResourceModel> setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock(); ErrorInfo errorInfo = new ErrorInfo { InstanceID = new Guid() }; var envRepo = new Mock<IEnvironmentRepository>(); envRepo.Setup(e => e.ActiveEnvironment).Returns(setupResourceModelMock.Object.Environment); IObservableReadOnlyList<IErrorInfo> testErrors = new ObservableReadOnlyList<IErrorInfo> { errorInfo }; setupResourceModelMock.Setup(c => c.Errors).Returns(testErrors); setupResourceModelMock.Setup(c => c.GetErrors(It.IsAny<Guid>())).Returns(new List<IErrorInfo> { errorInfo }); var viewModel = new ServiceDesignerViewModel(mockModelItem.Object, setupResourceModelMock.Object, envRepo.Object, new Mock<IEventAggregator>().Object, new TestAsyncWorker()); Assert.AreEqual(1, viewModel.TitleBarToggles.Count); viewModel.ShowLarge = true; Assert.AreEqual(2, viewModel.TitleBarToggles.Count); //------------Execute Test--------------------------- viewModel.Collapse(); //------------Assert Results------------------------- Assert.AreEqual(1, viewModel.TitleBarToggles.Count); }