Inheritance: IErrorInfo
        public void ActionableErrorInfo_Constructor_WithErrorInfo_InitializesProperties()
        {
            //------------Setup for test--------------------------
            var errorInfo = new ErrorInfo
            {
                ErrorType = ErrorType.Critical,
                FixData = "FixData",
                FixType = FixType.ReloadMapping,
                InstanceID = Guid.NewGuid(),
                Message = "Message",
                StackTrace = "StackTrace"
            };

            var actionInvoked = false;
            var action = new Action(() => { actionInvoked = true; });

            //------------Execute Test---------------------------
            var actionableErrorInfo = new ActionableErrorInfo(errorInfo, action);

            //------------Assert Results-------------------------
            Assert.AreEqual(errorInfo.ErrorType, actionableErrorInfo.ErrorType);
            Assert.AreEqual(errorInfo.FixData, actionableErrorInfo.FixData);
            Assert.AreEqual(errorInfo.FixType, actionableErrorInfo.FixType);
            Assert.AreEqual(errorInfo.InstanceID, actionableErrorInfo.InstanceID);
            Assert.AreEqual(errorInfo.Message, actionableErrorInfo.Message);
            Assert.AreEqual(errorInfo.StackTrace, actionableErrorInfo.StackTrace);

            actionableErrorInfo.Do();
            Assert.IsTrue(actionInvoked);
        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_FixErrors_RequiredWhenMappingValid_ShouldRemoveError()
        // ReSharper restore InconsistentNaming
        {
            const string xml = @"<Args>
          <Input>[
          {""Name"":""n1"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":true,""RawValue"":"""",""EmptyToNull"":false}]</Input>          
        </Args>";

            // Inputs must have MapsTo
            var inputs = new List<IDev2Definition> { new Dev2Definition("n1", "n1", "somevalue", false, "somevalue", false, "") };
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.IsRequiredChanged, FixData = xml };

            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, worstError);

            var actualInputs = vm.DataMappingViewModel.Inputs;

            Assert.AreEqual(1, actualInputs.Count, "Fix errors returned an incorrect number of outputmappings");
            Assert.AreEqual("n1", actualInputs[0].Name, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Name value");
            Assert.AreNotEqual(string.Empty, actualInputs[0].MapsTo, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect MapsTo value");
            Assert.IsFalse(vm.ShowLarge, "Fix errors failed to show the mapping.");

            // Always expect at least one error in the activity's error list - the no error
            Assert.AreEqual(ErrorType.None, vm.WorstError, "Fix errors failed to clear the error.");
            Assert.AreEqual(1, vm.DesignValidationErrors.Count, "Fix errors failed to remove the worst error from the activity.");

            Assert.AreEqual(0, vm.RootModel.Errors.Count, "Fix errors failed to remove the worst error from the activity's root model.");
        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_FixErrors_RequiredMapping_Done()
        // ReSharper restore InconsistentNaming
        {
            const string xml = @"<Args>
          <Input>[
          {""Name"":""n1"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":true,""RawValue"":"""",""EmptyToNull"":false}]</Input>          
        </Args>";

            // Inputs must NOT have MapsTo
            var inputs = new List<IDev2Definition> { new Dev2Definition("n1", "", "", false, "", false, "") };
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.IsRequiredChanged, FixData = xml };

            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, worstError);

            vm.FixErrorsCommand.Execute(null);
            var actualInputs = vm.DataMappingViewModel.Inputs;

            //asserts
            Assert.AreEqual(1, actualInputs.Count, "Fix errors returned an incorrect number of outputmappings");
            Assert.AreEqual("n1", actualInputs[0].Name, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Name value");
            Assert.AreEqual(string.Empty, actualInputs[0].MapsTo, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect MapsTo value");

            Assert.IsTrue(vm.ShowLarge, "Fix errors failed to show the mapping.");

            // Simulate fixing error...
            vm.DataMappingViewModel.Inputs[0].MapsTo = string.Empty;
            vm.DataMappingViewModel.Inputs[0].Required = true;
            vm.ShowLarge = false;

            Assert.IsFalse(vm.ShowLarge, "Fix errors failed to show the mapping.");
            Assert.AreEqual(1, vm.DesignValidationErrors.Count, "Fix errors failed to remove the worst error from the activity.");
        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_FixErrors_DoesNotSetResourceModelValidWhenResourceStillHasErrors()
        // ReSharper restore InconsistentNaming
        {
            //---------------------------------Setup-------------------------------------------------------------------------------------------------------
            const string xml = @"<Args>
          <Input>[
          {""Name"":""n1"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
          {""Name"":""n2"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
          {""Name"":""n3"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Input>
          <Output>[{""Name"":""result"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Output>
        </Args>";

            var inputs = new List<IDev2Definition>();
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            inputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();
            outputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = xml };
            IErrorInfo[] resourceErrors = { worstError, new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Warning, FixType = FixType.ReloadMapping, FixData = xml }, new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Warning, FixType = FixType.ReloadMapping, FixData = xml } };
            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, resourceErrors);
            vm.RootModel.AddError(resourceErrors[0]);
            vm.RootModel.AddError(resourceErrors[1]);
            //-----------------------------Assert Preconditions----------------------------------------------------------------------------
            Assert.IsFalse(vm.IsWorstErrorReadOnly);
            Assert.IsFalse(vm.IsFixed);
            Assert.AreEqual(3, vm.RootModel.Errors.Count);
            //-----------------------------Execute-----------------------------------------------------------------------------------------
            vm.DesignValidationErrors.RemoveAt(2);
            vm.DesignValidationErrors.RemoveAt(1);
            vm.FixErrorsCommand.Execute(null);
            Assert.IsTrue(vm.IsWorstErrorReadOnly);
            vm.DoneCompletedCommand.Execute(null);
            Assert.IsTrue(vm.IsFixed);
            Assert.IsTrue(vm.RootModel.HasErrors);
            Assert.AreEqual(2, vm.RootModel.Errors.Count);
            Assert.IsFalse(vm.RootModel.IsValid);
        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_FixErrors_FixReloadMapping_Done()
        // ReSharper restore InconsistentNaming
        {
            const string xml = @"<Args>
          <Input>[
          {""Name"":""n1"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
          {""Name"":""n2"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
          {""Name"":""n3"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Input>
          <Output>[{""Name"":""result"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Output>
        </Args>";

            var inputs = new List<IDev2Definition>();
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            inputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();
            outputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = xml };

            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, worstError);
            vm.FixErrorsCommand.Execute(null);

            var actualInputs = vm.DataMappingViewModel.Inputs;
            var actualOutputs = vm.DataMappingViewModel.Outputs;

            Assert.AreEqual(3, actualInputs.Count, "Fix errors returned an incorrect number of outputmappings");
            Assert.AreEqual("n1", actualInputs[0].Name, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Name value");
            Assert.AreEqual(string.Empty, actualInputs[0].DefaultValue, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect DefaultValue value");
            Assert.AreEqual(string.Empty, actualInputs[0].RecordSetName, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect RecordSetName value");
            Assert.AreEqual("n2", actualInputs[1].Name, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Name value");
            Assert.AreEqual(string.Empty, actualInputs[1].MapsTo, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect MapsTo value");
            Assert.AreEqual(string.Empty, actualInputs[1].DefaultValue, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect DefaultValue value");
            Assert.AreEqual(string.Empty, actualInputs[1].RecordSetName, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect RecordSetName value");
            Assert.AreEqual(string.Empty, actualInputs[1].Value, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Value value");
            Assert.AreEqual("n3", actualInputs[2].Name, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Name value");
            Assert.AreEqual(string.Empty, actualInputs[2].MapsTo, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect MapsTo value");
            Assert.AreEqual(string.Empty, actualInputs[2].DefaultValue, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect DefaultValue value");
            Assert.AreEqual(string.Empty, actualInputs[2].RecordSetName, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect RecordSetName value");
            Assert.AreEqual(string.Empty, actualInputs[2].Value, "Fix errors failed to fix a mapping error. The first output mapping contains an incorrect Value value");

            Assert.AreEqual(1, actualOutputs.Count, "Fix errors returned an incorrect number of inputmappings");
            Assert.AreEqual("result", actualOutputs[0].Name, "Fix errors failed to fix a mapping error. The first input mapping contains an incorrect Name value");
            Assert.AreEqual(string.Empty, actualOutputs[0].MapsTo, "Fix errors failed to fix a mapping error. The first input mapping contains an incorrect MapsTo value");
            Assert.AreEqual(string.Empty, actualOutputs[0].DefaultValue, "Fix errors failed to fix a mapping error. The first input mapping contains an incorrect DefaultValue value");
            Assert.AreEqual(string.Empty, actualOutputs[0].RecordSetName, "Fix errors failed to fix a mapping error. The first input mapping contains an incorrect RecordSetName value");
            Assert.AreEqual(string.Empty, actualOutputs[0].Value, "Fix errors failed to fix a mapping error. The first input mapping contains an incorrect Value value");

            Assert.IsTrue(vm.ShowLarge, "Fix errors failed to show the mapping.");

            // Called: 1 x ActivityViewModel constructor and 1 x DataMappingViewModel constructor
            inputMapping.Verify(p => p.SetValue(It.IsAny<object>()), Times.Exactly(4));
            outputMapping.Verify(p => p.SetValue(It.IsAny<object>()), Times.Exactly(4));

            // Always expect at least one error in the activity's error list - the no error
            Assert.AreEqual(ErrorType.None, vm.WorstError, "Fix errors failed to clear the error.");
            Assert.AreEqual(1, vm.DesignValidationErrors.Count, "Fix errors failed to remove the worst error from the activity.");

            Assert.AreEqual(0, vm.RootModel.Errors.Count, "Fix errors failed to remove the worst error from the activity's root model.");
            Assert.IsTrue(vm.IsWorstErrorReadOnly);
            vm.DoneCompletedCommand.Execute(null);
            Assert.IsTrue(vm.IsFixed);
        }
        public void ServiceDesignerViewModel_FixErrorsCommand_InputDefinitionsMalformed_NoInputsOneOutputPresent()
        {
            //------------Setup for test--------------------------
            const string xml = @"<Args>
                      <Input>[
                      {""Name"":""n1"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
                      {""Name"":""n2"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false},
                      {""Name"":""n3"",""MapsTo"":"""",""Value"":"""",IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Input>
                      <Output>[{""Name"":""result"",""MapsTo"":"""",""Value"":"""",""IsRecordSet"":false,""RecordSetName"":"""",""IsEvaluated"":false,""DefaultValue"":"""",""IsRequired"":false,""RawValue"":"""",""EmptyToNull"":false}]</Output>
                    </Args>";

            var inputs = new List<IDev2Definition>();
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            inputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();
            outputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = xml };

            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, worstError);
            vm.FixErrorsCommand.Execute(null);

            var actualInputs = vm.DataMappingViewModel.Inputs;
            var actualOutputs = vm.DataMappingViewModel.Outputs;


            //------------Assert Results-------------------------

            // No exception, all is good ;)
            Assert.AreEqual(0, actualInputs.Count);
            Assert.AreEqual(1, actualOutputs.Count);

        }
        public void ServiceDesignerViewModel_FixErrorsCommand_ErrorMemoDataIsInvalidXml_NoInputsOrOutputsPresent()
        {
            //------------Setup for test--------------------------
            var inputs = new List<IDev2Definition>();
            var outputs = new List<IDev2Definition>();

            var inputMapping = CreateModelProperty("InputMapping", DataMappingListFactory.GenerateMapping(inputs, enDev2ArgumentType.Input));
            var outputMapping = CreateModelProperty("OutputMapping", DataMappingListFactory.GenerateMapping(outputs, enDev2ArgumentType.Output));

            inputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();
            outputMapping.Setup(p => p.SetValue(It.IsAny<object>())).Verifiable();

            var instanceID = Guid.NewGuid();
            var worstError = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = "fix me" };

            var vm = CreateServiceDesignerViewModel(instanceID, new[] { inputMapping.Object, outputMapping.Object }, worstError);
            vm.FixErrorsCommand.Execute(null);

            var actualInputs = vm.DataMappingViewModel.Inputs;
            var actualOutputs = vm.DataMappingViewModel.Outputs;


            //------------Assert Results-------------------------

            // No exception, all is good ;)
            Assert.AreEqual(0, actualInputs.Count);
            Assert.AreEqual(0, actualOutputs.Count);

        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_OpenParent_WhenDeleted_DoesNothing()
        // ReSharper restore InconsistentNaming
        {
            var eventAggregator = new Mock<IEventAggregator>();
            //eventAggregator.Setup(e => e.Publish(It.IsAny<EditActivityMessage>())).Verifiable();

            var instanceID = Guid.NewGuid();
            var error1 = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = "xxxxx" };
            var error2 = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.Delete, FixData = null };

            var vm = CreateServiceDesignerViewModel(instanceID, false, eventAggregator.Object, null, error1, error2);

            Assert.IsTrue(vm.IsDeleted);

            // ------ Execute Test -----
            vm.ShowParent = true;

            eventAggregator.Verify(e => e.Publish(It.IsAny<EditActivityMessage>()), Times.Never(), "EditActivityMessage was published for deleted activity.");
        }
        // ReSharper disable InconsistentNaming
        public void ServiceDesignerViewModel_Constructor_ResourceContainingDeletedError_InitializesPropertiesCorrectly()
        // ReSharper restore InconsistentNaming
        {
            var instanceID = Guid.NewGuid();
            var error1 = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.ReloadMapping, FixData = "xxxxx" };
            var error2 = new ErrorInfo { InstanceID = instanceID, ErrorType = ErrorType.Critical, FixType = FixType.Delete, FixData = null };

            var vm = CreateServiceDesignerViewModel(instanceID, error1, error2);

            Assert.IsTrue(vm.IsDeleted, "Constructor did not set IsDeleted to true when the resource model has any errors where the FixType is Delete.");
            Assert.AreEqual(1, vm.LastValidationMemo.Errors.Count, "Constructor did not remove non delete errors.");
            Assert.IsTrue(vm.IsWorstErrorReadOnly, "Constructor did set IsWorstErrorReadOnly to true for Delete.");
            Assert.IsTrue(vm.IsFixed);
            Assert.IsFalse(vm.IsEditable, "Constructor did set IsEditable to false for Delete.");
        }
        public void ServiceDesignerViewModel_Constructor_AnyArgs_SetsLastValidationMemo()
        {
            var instanceID = Guid.NewGuid();
            var error = new ErrorInfo { InstanceID = instanceID, Message = "Error occurred", ErrorType = ErrorType.Critical, FixType = FixType.None };

            var model = CreateServiceDesignerViewModel(instanceID, error);

            Assert.IsNotNull(model.LastValidationMemo);
            Assert.AreEqual(instanceID, model.LastValidationMemo.InstanceID);

            Assert.AreEqual(1, model.DesignValidationErrors.Count);
            Assert.AreSame(error, model.DesignValidationErrors[0], model.DesignValidationErrors[0].Message);
        }
Exemple #11
0
        public void ResourceModel_RemoveError_ErrorIsNotFound_DoesNothing()
        {
            var instanceID = Guid.NewGuid();

            IErrorInfo err1 = new ErrorInfo
            {
                InstanceID = instanceID,
                ErrorType = ErrorType.Critical,
                FixType = FixType.ReloadMapping
            };

            IErrorInfo err2 = new ErrorInfo
            {
                InstanceID = instanceID,
                ErrorType = ErrorType.Warning,
                FixType = FixType.ReloadMapping
            };
            var model = new ResourceModel(new Mock<IEnvironmentModel>().Object, new Mock<IEventAggregator>().Object);
            model.AddError(err1);
            model.AddError(err2);

            //------------Execute Test---------------------------
            model.RemoveError(new ErrorInfo
            {
                InstanceID = instanceID,
                ErrorType = ErrorType.None,
                FixType = FixType.Delete
            });

            //------------Assert Results-------------------------
            var errors = model.GetErrors(instanceID);

            Assert.AreEqual(2, errors.Count);
            Assert.AreSame(err1, errors[0]);
            Assert.AreSame(err2, errors[1]);
        }
Exemple #12
0
        public void ResourceModel_Environment_DesignValidationService_WiredUp()
        {
            var eventPublisher = new EventPublisher();

            var environmentID = Guid.NewGuid();
            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.Connection.ServerEvents).Returns(eventPublisher);

            var instanceID = Guid.NewGuid();
            var model = new ResourceModel(environment.Object, new Mock<IEventAggregator>().Object);

            var errors = model.GetErrors(instanceID);
            Assert.AreEqual(0, errors.Count);

            var err = new ErrorInfo
            {
                InstanceID = instanceID,
            };

            var memo = new DesignValidationMemo
            {
                InstanceID = environmentID,
                Errors = new List<IErrorInfo>
                {
                    err
                }
            };

            //------------Execute Test---------------------------
            eventPublisher.Publish(memo);

            //------------Assert Results-------------------------
            errors = model.GetErrors(instanceID);
            Assert.AreEqual(1, errors.Count);
            Assert.AreSame(err, errors[0]);
        }
        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);
        }