public void RedisRemoveDesignerViewModel_Constructor_ModelItemIsValid_Null_EnvironmentModel()
 {
     //------------Setup for test--------------------------
     //------------Execute Test---------------------------
     _ = new RedisRemoveDesignerViewModel(CreateModelItem(), null, null);
     //------------Assert Results-------------------------
 }
        public void RedisRemoveDesignerViewModel_Constructor_ModelItemIsValid_Null_ShellViewModel()
        {
            //------------Setup for test--------------------------
            var mockServer = new Mock <IServer>();

            //------------Execute Test---------------------------
            _ = new RedisRemoveDesignerViewModel(CreateModelItem(), mockServer.Object, null);
            //------------Assert Results-------------------------
        }
        public void RedisRemoveDesignerViewModel_Constructor_ModelItemIsValid_Constructor()
        {
            //------------Setup for test--------------------------
            var expectedId  = Guid.NewGuid();
            var redisSource = new RedisSource
            {
                ResourceID         = expectedId,
                ResourceName       = "ResourceName",
                HostName           = "HostName",
                Port               = "6379",
                AuthenticationType = Runtime.ServiceModel.Data.AuthenticationType.Anonymous
            };

            var redisSources = new List <RedisSource> {
                redisSource
            };

            var mockResourceRepository = new Mock <IResourceRepository>();

            mockResourceRepository.Setup(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource)).Returns(redisSources);
            var mockServer = new Mock <IServer>();

            mockServer.Setup(server => server.ResourceRepository).Returns(mockResourceRepository.Object);

            var mockShellViewModel = new Mock <IShellViewModel>();

            //------------Execute Test---------------------------
            var redisRemoveDesignerViewModel = new RedisRemoveDesignerViewModel(CreateModelItem(), mockServer.Object, mockShellViewModel.Object);

            //------------Assert Results-------------------------
            Assert.IsTrue(redisRemoveDesignerViewModel.HasLargeView);
            Assert.IsTrue(redisRemoveDesignerViewModel.ShowLarge);
            Assert.AreEqual(1, redisRemoveDesignerViewModel.RedisSources.Count);
            Assert.AreEqual(expectedId, redisRemoveDesignerViewModel.RedisSources[0].ResourceID);
            Assert.AreEqual("ResourceName", redisRemoveDesignerViewModel.RedisSources[0].ResourceName);
            Assert.AreEqual("HostName", redisRemoveDesignerViewModel.RedisSources[0].HostName);
            Assert.AreEqual("6379", redisRemoveDesignerViewModel.RedisSources[0].Port);
            Assert.AreEqual(Runtime.ServiceModel.Data.AuthenticationType.Anonymous, redisRemoveDesignerViewModel.RedisSources[0].AuthenticationType);

            Assert.IsNull(redisRemoveDesignerViewModel.SelectedRedisSource);
            Assert.IsFalse(redisRemoveDesignerViewModel.IsRedisSourceSelected);
            Assert.IsFalse(redisRemoveDesignerViewModel.EditRedisSourceCommand.CanExecute(null));

            redisRemoveDesignerViewModel.SelectedRedisSource = redisSource;

            Assert.IsNotNull(redisRemoveDesignerViewModel.SelectedRedisSource);
            Assert.IsTrue(redisRemoveDesignerViewModel.IsRedisSourceSelected);
            Assert.AreEqual(redisSource.ResourceID, redisRemoveDesignerViewModel.SelectedRedisSource.ResourceID);
            Assert.IsTrue(redisRemoveDesignerViewModel.EditRedisSourceCommand.CanExecute(null));

            mockResourceRepository.Verify(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource), Times.Once);
        }
        public void RedisRemoveDesignerViewModel_Constructor_ModelItemIsValid_EditRedisServerSource()
        {
            var expectedId  = Guid.NewGuid();
            var redisSource = new RedisSource
            {
                ResourceID         = expectedId,
                ResourceName       = "ResourceName",
                HostName           = "HostName",
                Port               = "6379",
                AuthenticationType = Runtime.ServiceModel.Data.AuthenticationType.Anonymous
            };

            var redisSources = new List <RedisSource> {
                redisSource
            };

            var environmentId = Guid.NewGuid();

            var mockResourceRepository = new Mock <IResourceRepository>();

            mockResourceRepository.Setup(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource)).Returns(redisSources);
            var mockServer = new Mock <IServer>();

            mockServer.Setup(server => server.EnvironmentID).Returns(environmentId);
            mockServer.Setup(server => server.ResourceRepository).Returns(mockResourceRepository.Object);


            var mockShellViewModel = new Mock <IShellViewModel>();

            mockShellViewModel.Setup(shellViewModel => shellViewModel.ActiveServer).Returns(mockServer.Object);
            mockShellViewModel.Setup(shellViewModel => shellViewModel.OpenResource(redisSource.ResourceID, environmentId, mockServer.Object));
            CustomContainer.Register(mockShellViewModel.Object);

            //------------Execute Test---------------------------
            var redisRemoveDesignerViewModel = new RedisRemoveDesignerViewModel(CreateModelItem(), mockServer.Object, mockShellViewModel.Object)
            {
                SelectedRedisSource = redisSource
            };

            redisRemoveDesignerViewModel.EditRedisSourceCommand.Execute(null);

            mockShellViewModel.Verify(shellViewModel => shellViewModel.OpenResource(expectedId, environmentId, mockServer.Object), Times.Once);
            mockResourceRepository.Verify(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource), Times.Exactly(2));
        }
        public void RedisRemoveDesignerViewModel_Constructor_ModelItemIsValid_UpdateHelpDescriptor()
        {
            var expectedHelpText = "redis help text";

            var mockHelpViewModel = new Mock <IHelpWindowViewModel>();

            mockHelpViewModel.Setup(helpViewModel => helpViewModel.UpdateHelpText(expectedHelpText));
            var mockShellViewModel = new Mock <IShellViewModel>();

            mockShellViewModel.Setup(shellViewModel => shellViewModel.HelpViewModel).Returns(mockHelpViewModel.Object);
            CustomContainer.Register(mockShellViewModel.Object);

            var expectedId  = Guid.NewGuid();
            var redisSource = new RedisSource
            {
                ResourceID         = expectedId,
                ResourceName       = "ResourceName",
                HostName           = "HostName",
                Port               = "6379",
                AuthenticationType = Runtime.ServiceModel.Data.AuthenticationType.Anonymous
            };

            var redisSources = new List <RedisSource> {
                redisSource
            };

            var mockResourceRepository = new Mock <IResourceRepository>();

            mockResourceRepository.Setup(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource)).Returns(redisSources);
            var mockServer = new Mock <IServer>();

            mockServer.Setup(server => server.ResourceRepository).Returns(mockResourceRepository.Object);

            //------------Execute Test---------------------------
            var redisRemoveDesignerViewModel = new RedisRemoveDesignerViewModel(CreateModelItem(), mockServer.Object, mockShellViewModel.Object);

            Assert.AreEqual("Use the Redis Remove tool to remove existing key with data from cache.", redisRemoveDesignerViewModel.HelpText);
            redisRemoveDesignerViewModel.UpdateHelpDescriptor(expectedHelpText);

            mockHelpViewModel.Verify(helpViewModel => helpViewModel.UpdateHelpText(expectedHelpText), Times.Once);
        }
        public void RedisRemoveDesignerViewModel_Constructor_ResultNotNull()
        {
            var expectedId  = Guid.NewGuid();
            var redisSource = new RedisSource
            {
                ResourceID         = expectedId,
                ResourceName       = "ResourceName",
                HostName           = "HostName",
                Port               = "6379",
                AuthenticationType = Runtime.ServiceModel.Data.AuthenticationType.Anonymous
            };

            var redisSources = new List <RedisSource> {
                redisSource
            };

            var environmentId = Guid.NewGuid();

            var mockResourceRepository = new Mock <IResourceRepository>();

            mockResourceRepository.Setup(resourceRepository => resourceRepository.FindSourcesByType <RedisSource>(It.IsAny <IServer>(), enSourceType.RedisSource)).Returns(redisSources);
            var mockServer = new Mock <IServer>();

            mockServer.Setup(server => server.EnvironmentID).Returns(environmentId);
            mockServer.Setup(server => server.ResourceRepository).Returns(mockResourceRepository.Object);


            var mockShellViewModel = new Mock <IShellViewModel>();

            mockShellViewModel.Setup(shellViewModel => shellViewModel.ActiveServer).Returns(mockServer.Object);
            mockShellViewModel.Setup(shellViewModel => shellViewModel.NewRedisSource(""));
            CustomContainer.Register(mockShellViewModel.Object);

            //------------Execute Test---------------------------
            var redisRemoveDesignerViewModel = new RedisRemoveDesignerViewModel(CreateModelItemWithResult(), mockServer.Object, mockShellViewModel.Object);

            Assert.AreEqual("someResult", redisRemoveDesignerViewModel.Result);
        }