Browse Source

Add UpdateViewModel tests

pull/165/head
Ionite 1 year ago
parent
commit
8d4edbd8ed
No known key found for this signature in database
  1. 55
      StabilityMatrix.Tests/Avalonia/UpdateViewModelTests.cs
  2. 37
      StabilityMatrix.Tests/ReparsePoints/JunctionTests.cs

55
StabilityMatrix.Tests/Avalonia/UpdateViewModelTests.cs

@ -0,0 +1,55 @@
using Semver;
using StabilityMatrix.Avalonia.ViewModels.Dialogs;
namespace StabilityMatrix.Tests.Avalonia;
[TestClass]
public class UpdateViewModelTests
{
[TestMethod]
public void FormatChangelogTest()
{
// Arrange
const string markdown = """
# Changelog
All notable changes to Stability Matrix will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html).
## v2.4.6
### Added
- Stuff
### Changed
- Things
## v2.4.5
### Fixed
- Fixed bug
## v2.4.4
### Changed
- Changed stuff
""";
// Act
var result = UpdateViewModel.FormatChangelog(markdown, SemVersion.Parse("2.4.5"));
var resultPre = UpdateViewModel.FormatChangelog(
markdown,
SemVersion.Parse("2.4.5-pre.1+1a7b4e4")
);
// Assert
const string expected = """
## v2.4.6
### Added
- Stuff
### Changed
- Things
""";
Assert.AreEqual(expected, result);
Assert.AreEqual(expected, resultPre);
}
}

37
StabilityMatrix.Tests/ReparsePoints/JunctionTests.cs

@ -1,12 +1,13 @@
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using StabilityMatrix.Core.ReparsePoints; using StabilityMatrix.Core.ReparsePoints;
namespace StabilityMatrix.Tests.ReparsePoints; namespace StabilityMatrix.Tests.ReparsePoints;
using System.IO; using System.IO;
[TestClass] [TestClass]
[SupportedOSPlatform("windows")]
public class JunctionTest public class JunctionTest
{ {
private string tempFolder = string.Empty; private string tempFolder = string.Empty;
@ -19,7 +20,7 @@ public class JunctionTest
Assert.Inconclusive("Test cannot be run on anything but Windows currently."); Assert.Inconclusive("Test cannot be run on anything but Windows currently.");
return; return;
} }
tempFolder = Path.GetTempFileName(); tempFolder = Path.GetTempFileName();
File.Delete(tempFolder); File.Delete(tempFolder);
Directory.CreateDirectory(tempFolder); Directory.CreateDirectory(tempFolder);
@ -28,7 +29,8 @@ public class JunctionTest
[TestCleanup] [TestCleanup]
public void Cleanup() public void Cleanup()
{ {
if (string.IsNullOrEmpty(tempFolder)) return; if (string.IsNullOrEmpty(tempFolder))
return;
TempFiles.DeleteDirectory(tempFolder); TempFiles.DeleteDirectory(tempFolder);
} }
@ -56,28 +58,38 @@ public class JunctionTest
File.Create(Path.Combine(targetFolder, "AFile")).Close(); File.Create(Path.Combine(targetFolder, "AFile")).Close();
// Verify behavior before junction point created. // Verify behavior before junction point created.
Assert.IsFalse(File.Exists(Path.Combine(junctionPoint, "AFile")), Assert.IsFalse(
"File should not be located until junction point created."); File.Exists(Path.Combine(junctionPoint, "AFile")),
"File should not be located until junction point created."
);
Assert.IsFalse(Junction.Exists(junctionPoint), "Junction point not created yet."); Assert.IsFalse(Junction.Exists(junctionPoint), "Junction point not created yet.");
// Create junction point and confirm its properties. // Create junction point and confirm its properties.
Junction.Create(junctionPoint, targetFolder, false /*don't overwrite*/); Junction.Create(
junctionPoint,
targetFolder,
false /*don't overwrite*/
);
Assert.IsTrue(Junction.Exists(junctionPoint), "Junction point exists now."); Assert.IsTrue(Junction.Exists(junctionPoint), "Junction point exists now.");
Assert.AreEqual(targetFolder, Junction.GetTarget(junctionPoint)); Assert.AreEqual(targetFolder, Junction.GetTarget(junctionPoint));
Assert.IsTrue(File.Exists(Path.Combine(junctionPoint, "AFile")), Assert.IsTrue(
"File should be accessible via the junction point."); File.Exists(Path.Combine(junctionPoint, "AFile")),
"File should be accessible via the junction point."
);
// Delete junction point. // Delete junction point.
Junction.Delete(junctionPoint); Junction.Delete(junctionPoint);
Assert.IsFalse(Junction.Exists(junctionPoint), "Junction point should not exist now."); Assert.IsFalse(Junction.Exists(junctionPoint), "Junction point should not exist now.");
Assert.IsFalse(File.Exists(Path.Combine(junctionPoint, "AFile")), Assert.IsFalse(
"File should not be located after junction point deleted."); File.Exists(Path.Combine(junctionPoint, "AFile")),
"File should not be located after junction point deleted."
);
Assert.IsFalse(Directory.Exists(junctionPoint), "Ensure directory was deleted too."); Assert.IsFalse(Directory.Exists(junctionPoint), "Ensure directory was deleted too.");
@ -86,7 +98,10 @@ public class JunctionTest
} }
[TestMethod] [TestMethod]
[ExpectedException(typeof(IOException), "Directory already exists and overwrite parameter is false.")] [ExpectedException(
typeof(IOException),
"Directory already exists and overwrite parameter is false."
)]
public void Create_ThrowsIfOverwriteNotSpecifiedAndDirectoryExists() public void Create_ThrowsIfOverwriteNotSpecifiedAndDirectoryExists()
{ {
var targetFolder = Path.Combine(tempFolder, "ADirectory"); var targetFolder = Path.Combine(tempFolder, "ADirectory");

Loading…
Cancel
Save