public void RabbitMQPublishDesignerViewModel2_Constructor1()
        {
            //------------Setup for test--------------------------
            var model = new Mock <IRabbitMQSourceModel>();

            model.Setup(m => m.RetrieveSources()).Returns(new List <IRabbitMQServiceSourceDefinition>());
            //------------Execute Test---------------------------

            var result        = new List <RabbitMqPublishOptions>();
            var CorrelationID = new RabbitMqPublishOptions()
            {
            };
            var options         = OptionConvertor.Convert(CorrelationID);
            var basicProperties = new OptionsWithNotifier {
                Options = options
            };

            var vm = new RabbitMQPublishDesignerViewModel2(CreateModelItem(), model.Object);

            vm.QueueName = "Q1";
            vm.BasicPropertiesOptions = basicProperties;
            vm.IsDurable               = false;
            vm.IsExclusive             = false;
            vm.IsAutoDelete            = false;
            vm.Message                 = "Test Message";
            vm.Result                  = "Success";
            vm.IsRabbitMQSourceFocused = false;
            vm.IsQueueNameFocused      = false;
            vm.IsMessageFocused        = false;

            //------------Assert Results-------------------------
            Assert.IsNotNull(vm);
            Assert.IsNotNull(vm.EditRabbitMQSourceCommand);
            Assert.IsNotNull(vm.NewRabbitMQSourceCommand);
            Assert.IsFalse(vm.ShowLarge);
            Assert.AreEqual(vm.ThumbVisibility, Visibility.Collapsed);
            Assert.IsNotNull(vm.RabbitMQSources);
            Assert.IsFalse(vm.IsRabbitMQSourceFocused);
            Assert.IsFalse(vm.IsQueueNameFocused);
            Assert.IsFalse(vm.IsMessageFocused);
            Assert.IsNull(vm.SelectedRabbitMQSource);
            Assert.AreEqual(vm.QueueName, "Q1");
            Assert.AreEqual(vm.BasicPropertiesOptions.Options[0].Name, "AutoCorrelation");
            Assert.AreEqual(vm.IsDurable, false);
            Assert.AreEqual(vm.IsExclusive, false);
            Assert.AreEqual(vm.IsAutoDelete, false);
            Assert.AreEqual(vm.Message, "Test Message");
            Assert.AreEqual(vm.Result, "Success");
            Assert.AreEqual(vm.IsRabbitMQSourceFocused, false);
            Assert.AreEqual(vm.IsQueueNameFocused, false);
            Assert.AreEqual(vm.IsMessageFocused, false);
        }
        private void LoadBasicProperties()
        {
            var basicProperties = _modelItem.Properties["BasicProperties"]?.ComputedValue as RabbitMqPublishOptions;

            if (basicProperties is null)
            {
                basicProperties = new RabbitMqPublishOptions();
                _modelItem.Properties["BasicProperties"]?.SetValue(basicProperties);
            }

            basicProperties.OnChange += UpdateBasicPropertiesModelItem;
            _basicPropertiesInst      = basicProperties;
            var result  = new List <IOption>();
            var options = OptionConvertor.Convert(basicProperties);

            result.AddRange(options);
            BasicPropertiesOptions = new OptionsWithNotifier {
                Options = result
            };
        }