Ejemplo n.º 1
0
        public void TestGetLatestDarkRiftVersionWhenMemoised()
        {
            // GIVEN the remote can fetch the latest DarkRift version
            mockIRemoteRepository.Setup(r => r.GetLatestDarkRiftVersion()).Returns("a-version");

            // WHEN I get the latest DarkRift version
            InstallationManager classUnderTest = new InstallationManager(mockIRemoteRepository.Object, null, null, null);
            string result1 = classUnderTest.GetLatestDarkRiftVersion();

            // THEN the returned version is correct
            Assert.AreEqual("a-version", result1);

            // WHEN I get the latest DarkRift version a second time
            string result2 = classUnderTest.GetLatestDarkRiftVersion();

            // THEN the returned version is correct
            Assert.AreEqual("a-version", result2);

            // AND the remote was not contacted again
            mockIRemoteRepository.Verify(r => r.GetLatestDarkRiftVersion(), Times.Once);
        }
Ejemplo n.º 2
0
        public void TestInstall()
        {
            // GIVEN the installation does not exist
            mockIFileUtility.Setup(f => f.DirectoryExists(Path.Combine("a-dir", "pro", "core", "a-version"))).Returns(false);

            // AND the installation is available on the remote
            mockIRemoteRepository.Setup(r => r.DownloadVersionTo("a-version", ServerTier.Pro, "Core", Path.Combine("a-dir", "pro", "core", "a-version")))
            .Returns(true);

            // WHEN I install the version
            InstallationManager  classUnderTest = new InstallationManager(mockIRemoteRepository.Object, mockIFileUtility.Object, "a-dir", null);
            DarkRiftInstallation result         = classUnderTest.Install("a-version", ServerTier.Pro, "Core", false);

            // THEN the download was run
            mockIRemoteRepository.Verify(r => r.DownloadVersionTo("a-version", ServerTier.Pro, "Core", Path.Combine("a-dir", "pro", "core", "a-version")));

            // AND the installation returned is correct
            Assert.AreEqual("a-version", result.Version);
            Assert.AreEqual(ServerTier.Pro, result.Tier);
            Assert.AreEqual("Core", result.Platform);
            Assert.AreEqual(Path.Combine("a-dir", "pro", "core", "a-version"), result.InstallationPath);
        }
        public void TestGetVersions()
        {
            // GIVEN at least version is available
            mockIFileUtility.Setup(f => f.DirectoryExists(Path.Combine("a-dir", "pro", "core"))).Returns(true);
            mockIFileUtility.Setup(f => f.GetDirectories(Path.Combine("a-dir", "pro", "core"))).Returns(new string[] { "dir1", "dir2" });

            // WHEN I get the installed versions
            InstallationManager         classUnderTest = new InstallationManager(null, mockIFileUtility.Object, "a-dir", null);
            List <DarkRiftInstallation> result         = classUnderTest.GetVersions(ServerTier.Pro, ServerPlatform.Core);

            // THEN the result is the correct DarkRiftInstallation objects
            Assert.AreEqual(2, result.Count);

            Assert.AreEqual("dir1", result[0].Version);
            Assert.AreEqual(ServerTier.Pro, result[0].Tier);
            Assert.AreEqual(ServerPlatform.Core, result[0].Platform);
            Assert.AreEqual(Path.Combine("a-dir", "pro", "core", "dir1"), result[0].InstallationPath);

            Assert.AreEqual("dir2", result[1].Version);
            Assert.AreEqual(ServerTier.Pro, result[1].Tier);
            Assert.AreEqual(ServerPlatform.Core, result[1].Platform);
            Assert.AreEqual(Path.Combine("a-dir", "pro", "core", "dir2"), result[1].InstallationPath);
        }