示例#1
0
 public ProjectInventoryService(
     ConnectionSettingsRepository inventorySettings,
     IEventService eventService)
 {
     this.inventorySettings = inventorySettings;
     this.eventService      = eventService;
 }
示例#2
0
        public void CanUpdate(Guid id, string nameBeforeUpdate, string nameAfterUpdate)
        {
            var settingsBeforeUpdate = new ConnectionSettingsA {
                Id = id, Name = nameBeforeUpdate
            };

            var settingsStoreMock = new Mock <IConnectionSettingsStore>();

            settingsStoreMock.Setup(m => m.Load()).Returns(new ConnectionSettings[] { settingsBeforeUpdate });

            var repository = new ConnectionSettingsRepository(settingsStoreMock.Object);

            var factoryMock = new Mock <IBuildProviderStrategy>();

            var connectionPool = new ConnectionPool(repository, factoryMock.Object);

            var settingsToUpdate = new ConnectionSettingsA {
                Id = id, Name = nameAfterUpdate
            };

            repository.Update(settingsToUpdate);

            var connection = connectionPool.CurrentConnections.Single();

            connection.Settings.Name.ShouldBe(nameAfterUpdate);
        }
        public void WhenSetValidVmInstanceSettings_GetVmInstanceSettingsReturnSameValues()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetVmInstanceSettings("pro-1", new VmInstanceConnectionSettings()
            {
                InstanceName        = "vm-1",
                Username            = "******",
                ConnectionBar       = RdpConnectionBarState.Pinned,
                DesktopSize         = RdpDesktopSize.ScreenSize,
                AuthenticationLevel = RdpAuthenticationLevel.RequireServerAuthentication,
                ColorDepth          = RdpColorDepth.DeepColor,
                AudioMode           = RdpAudioMode.DoNotPlay,
                RedirectClipboard   = RdpRedirectClipboard.Enabled,
            });

            var settings = repository.GetVmInstanceSettings("pro-1", "vm-1");

            Assert.AreEqual("user-1", settings.Username);
            Assert.AreEqual(RdpConnectionBarState.Pinned, settings.ConnectionBar);
            Assert.AreEqual(RdpDesktopSize.ScreenSize, settings.DesktopSize);
            Assert.AreEqual(RdpAuthenticationLevel.RequireServerAuthentication, settings.AuthenticationLevel);
            Assert.AreEqual(RdpColorDepth.DeepColor, settings.ColorDepth);
            Assert.AreEqual(RdpAudioMode.DoNotPlay, settings.AudioMode);
            Assert.AreEqual(RdpRedirectClipboard.Enabled, settings.RedirectClipboard);
        }
        public ProjectExplorerWindow(IServiceProvider serviceProvider)
        {
            InitializeComponent();

            this.dockPanel       = serviceProvider.GetService <IMainForm>().MainPanel;
            this.serviceProvider = serviceProvider;

            this.TabText = this.Text;

            //
            // This window is a singleton, so we never want it to be closed,
            // just hidden.
            //
            this.HideOnClose = true;

            this.vsToolStripExtender.SetStyle(
                this.toolStrip,
                VisualStudioToolStripExtender.VsVersion.Vs2015,
                this.vs2015LightTheme);

            this.treeView.Nodes.Add(this.rootNode);

            this.mainForm                = serviceProvider.GetService <IMainForm>();
            this.eventService            = serviceProvider.GetService <IEventService>();
            this.jobService              = serviceProvider.GetService <IJobService>();
            this.projectInventoryService = serviceProvider.GetService <ProjectInventoryService>();
            this.settingsRepository      = serviceProvider.GetService <ConnectionSettingsRepository>();
            this.authService             = serviceProvider.GetService <IAuthorizationAdapter>();
            this.remoteDesktopService    = serviceProvider.GetService <IRemoteDesktopService>();

            this.eventService.BindAsyncHandler <ProjectInventoryService.ProjectAddedEvent>(OnProjectAdded);
            this.eventService.BindHandler <ProjectInventoryService.ProjectDeletedEvent>(OnProjectDeleted);
            this.eventService.BindHandler <RemoteDesktopConnectionSuceededEvent>(OnRdpConnectionSucceeded);
            this.eventService.BindHandler <RemoteDesktopWindowClosedEvent>(OnRdpConnectionClosed);
        }
        public void WhenBaseKeyDoesNotExist_ListProjectSettingsReturnsEmptyList()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var projects = repository.ListProjectSettings();

            Assert.IsFalse(projects.Any());
        }
        public void WhenProjectIdDoesNotExist_GetVmInstanceSettingsThrowsKeyNotFoundException()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetVmInstanceSettings("nonexisting-project", "vm-id");
            });
        }
 internal ProjectNode(ConnectionSettingsRepository settingsRepository, string projectId)
     : base(
         projectId,
         IconIndex,
         settingsRepository.GetProjectSettings(projectId),
         settings => settingsRepository.SetProjectSettings((ProjectConnectionSettings)settings),
         null)
 {
     this.settingsRepository = settingsRepository;
 }
        public void SetUp()
        {
            hkcu.DeleteSubKeyTree(TestKeyPath, false);

            var baseKey = hkcu.CreateSubKey(TestKeyPath);

            this.projectRepository = new ProjectRepository(baseKey);
            this.repository        = new ConnectionSettingsRepository(
                this.projectRepository);
        }
        public void WhenIdDoesNotExist_GetProjectSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetProjectSettings("some-project");
            });
        }
        public void WhenBaseKeyIsEmpty_SettingsAreEmpty()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var settings = repository.GetSettings();

            Assert.IsNull(settings.Username);
            Assert.IsNull(settings.Password);
            Assert.IsNull(settings.Domain);
        }
        public void SetUp()
        {
            hkcu.DeleteSubKeyTree(TestKeyPath, false);

            var repository = new ConnectionSettingsRepository(hkcu.CreateSubKey(TestKeyPath));

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "project-1",
                Domain    = "project-domain"
            });

            this.service = new ConnectionSettingsService(repository);
        }
        public void WhenZoneIdDoesNotExist_GetZoneSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "pro-1"
            });

            var settings = repository.GetZoneSettings("pro-1", "some-zone");

            Assert.AreEqual("some-zone", settings.ZoneId);
        }
        public void WhenVmInstanceIdDoesNotExist_GetVmInstanceSettingsReturnsDefaults()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "pro-1"
            });

            var settings = repository.GetVmInstanceSettings("pro-1", "some-vm");

            Assert.AreEqual("some-vm", settings.InstanceName);
            Assert.IsNull(settings.Username);
        }
示例#14
0
        public void CanAdd()
        {
            var settingsStoreMock = new Mock <IConnectionSettingsStore>();

            settingsStoreMock.Setup(m => m.Load()).Returns(new ConnectionSettings[] { });

            var repository = new ConnectionSettingsRepository(settingsStoreMock.Object);

            var factoryMock = new Mock <IBuildProviderStrategy>();

            var connectionPool = new ConnectionPool(repository, factoryMock.Object);

            repository.Add(new ConnectionSettingsA());

            connectionPool.CurrentConnections.Count().ShouldBe(1);
        }
        public void WhenSettingsSaved_GetSettingsReturnsData()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var originalSettings = new ConnectionSettings()
            {
                Username = "******"
            };

            repository.SetSettings(originalSettings);

            var settings = repository.GetSettings();

            Assert.AreEqual(originalSettings.Username, settings.Username);
        }
        public void WhenProjectSettingsSaved_ProjectReturnedInListProjects()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var originalSettings = new ProjectConnectionSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);

            var projects = repository.ListProjectSettings();

            Assert.AreEqual(1, projects.Count());
        }
示例#17
0
        public void SetUp()
        {
            hkcu.DeleteSubKeyTree(TestKeyPath, false);

            var projectRepository  = new ProjectRepository(hkcu.CreateSubKey(TestKeyPath));
            var settingsRepository = new ConnectionSettingsRepository(projectRepository);

            this.service = new ConnectionSettingsService(settingsRepository);

            // Set some initial project settings.
            projectRepository.AddProject(new ProjectLocator(SampleProjectId));

            var projectSettings = settingsRepository.GetProjectSettings(SampleProjectId);

            projectSettings.RdpDomain.Value = "project-domain";
            settingsRepository.SetProjectSettings(projectSettings);
        }
        public void WhenSetValidZoneSettings_GetZoneSettingsReturnSameValues()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetZoneSettings("pro-1", new ZoneConnectionSettings()
            {
                ZoneId   = "zone-1",
                Username = "******"
            });

            Assert.AreEqual("user-1", repository.GetZoneSettings("pro-1", "zone-1").Username);
        }
示例#19
0
        public void SetUp()
        {
            hkcu.DeleteSubKeyTree(TestKeyPath, false);

            var projectRepository = new ProjectRepository(
                hkcu.CreateSubKey(TestKeyPath),
                new Mock <IEventService>().Object);
            var settingsRepository = new ConnectionSettingsRepository(projectRepository);

            this.service = new ConnectionSettingsService(settingsRepository);

            // Set some initial project settings.
            projectRepository.AddProjectAsync(SampleProjectId).Wait();

            var projectSettings = settingsRepository.GetProjectSettings(SampleProjectId);

            projectSettings.Domain.Value = "project-domain";
            settingsRepository.SetProjectSettings(projectSettings);
        }
        public void WhenProjectSettingsDeleted_GetProjectSettingsThrowsKeyNotFoundException()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var originalSettings = new ProjectConnectionSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);
            repository.DeleteProjectSettings(originalSettings.ProjectId);

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetProjectSettings(originalSettings.ProjectId);
            });
        }
        public void WhenProjectSettingsDeleted_VmInstanceSettingsAreDeletedToo()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            repository.SetProjectSettings(new ProjectConnectionSettings()
            {
                ProjectId = "pro-1"
            });
            repository.SetVmInstanceSettings("pro-1", new VmInstanceConnectionSettings()
            {
                InstanceName = "vm-1",
                Username     = "******"
            });
            repository.DeleteProjectSettings("pro-1");

            Assert.Throws <KeyNotFoundException>(() =>
            {
                repository.GetVmInstanceSettings("pro-1", "vm-1");
            });
        }
        public void WhenProjectSettingsSavedTwice_GetProjectSettingsReturnsLatestData()
        {
            var baseKey    = hkcu.CreateSubKey(TestKeyPath);
            var repository = new ConnectionSettingsRepository(baseKey);

            var originalSettings = new ProjectConnectionSettings()
            {
                ProjectId = "pro-1",
                Username  = "******"
            };

            repository.SetProjectSettings(originalSettings);

            originalSettings.Username = "******";
            repository.SetProjectSettings(originalSettings);

            var settings = repository.GetProjectSettings(originalSettings.ProjectId);

            Assert.AreEqual(originalSettings.ProjectId, settings.ProjectId);
            Assert.AreEqual(originalSettings.Username, settings.Username);
        }