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); }
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); }