Duplicate File Locator 1.0
Loading...
Searching...
No Matches
DuplicatedFileTests.cs
Go to the documentation of this file.
3using NUnit.Framework;
4
6{
7 [TestFixture]
8 public class DuplicatedFileTests
9 {
10 #region Constructor Tests
11
12 [Test]
13 [Category("Constructor Tests")]
15 {
16 // Arrange
17 IDuplicatedFile duplicatedFile = new DuplicatedFile();
18
19 // Act
20 string hash = duplicatedFile.Hash;
21 string originalPath = duplicatedFile.OriginalPath;
22 List<string> duplicatedPaths = duplicatedFile.DuplicatePaths;
23
24 // Assert
25 Assert.Multiple(() =>
26 {
27 Assert.That(hash, Is.EqualTo(string.Empty));
28 Assert.That(originalPath, Is.EqualTo(string.Empty));
29 Assert.That(duplicatedPaths, Is.Empty);
30 });
31 }
32
33 [TestCase("BC1173AE1C119128CCCA7190BDD16FAF")]
34 [TestCase("38357FEEAA7392183DD16A34FE681100")]
35 [TestCase("769F0CACE7B957755C9B770CAE24D88F")]
36 [Category("Constructor Tests")]
37 public void DuplicatedFile_InitialisesHash(string fileHash)
38 {
39 IDuplicatedFile duplicatedFile = new DuplicatedFile(fileHash);
40
41 string hash = duplicatedFile.Hash;
42
43 Assert.That(hash, Is.EqualTo(fileHash));
44
45 }
46
47 [TestCase("BC1173AE1C119128CCCA7190BDD16FAF", "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\P1040133.JPG")]
48 [TestCase("38357FEEAA7392183DD16A34FE681100", "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\same_name\\20240809_152410.jpg")]
49 [TestCase("769F0CACE7B957755C9B770CAE24D88F", "C:\\Users\\Alexa\\OneDrive\\Denton Family Photos\\2004\\2004-07\\ALEX 03.07.04 026.jpg")]
50 [Category("Constructor Tests")]
51 public void DuplicatedFile_InitialisesHashAndDuplicatePath(string fileHash, string filePath)
52 {
53 IDuplicatedFile duplicatedFile = new DuplicatedFile(fileHash, filePath);
54
55 string hash = duplicatedFile.Hash;
56 int numDuplicatePaths = duplicatedFile.DuplicatePaths.Count;
57 string duplicateFilePath = duplicatedFile.DuplicatePaths.First();
58
59 Assert.Multiple(() =>
60 {
61 Assert.That(hash, Is.EqualTo(fileHash));
62 Assert.That(numDuplicatePaths, Is.EqualTo(1));
63 Assert.That(duplicateFilePath, Is.EqualTo(filePath));
64 });
65 }
66
67 [TestCase("BC1173AE1C119128CCCA7190BDD16FAF", "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\P1040133 - Copy.JPG",
68 new string[]
69 {
70 "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\P1040133.JPG",
71 "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\same_name\\P1040133.JPG",
72 "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\same_name_diff_date\\P1040133.JPG"
73 })]
74 [TestCase("38357FEEAA7392183DD16A34FE681100", "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\20240809_152410.jpg",
75 new string[]
76 {
77 "C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\same_name\\20240809_152410.jpg"
78 })]
79 [TestCase("769F0CACE7B957755C9B770CAE24D88F", "C:\\Users\\Alexa\\OneDrive\\Denton Family Photos\\2004\\2004-07\\ALEX 03.07.04 017.jpg",
80 new string[]
81 {
82 "C:\\Users\\Alexa\\OneDrive\\Denton Family Photos\\2004\\2004-07\\ALEX 03.07.04 026.jpg"
83 })]
84 [Category("Constructor Tests")]
85 public void DuplicatedFile_InitialisesHashOriginalPathAndDuplicatePath(string fileHash, string filePath, string[] duplicatePaths)
86 {
87 List<string> duplicates = new List<string>(duplicatePaths);
88 IDuplicatedFile duplicatedFile = new DuplicatedFile(fileHash, filePath, duplicates);
89
90 string hash = duplicatedFile.Hash;
91 string originalPath = duplicatedFile.OriginalPath;
92 int numDuplicatePaths = duplicatedFile.DuplicatePaths.Count;
93
94 Assert.Multiple(() =>
95 {
96 Assert.That(hash, Is.EqualTo(fileHash));
97 Assert.That(originalPath, Is.EqualTo(filePath));
98 Assert.That(numDuplicatePaths, Is.EqualTo(duplicatePaths.Length));
99 });
100 }
101
102 #endregion
103
104 #region Setter Tests
105
106 [TestCase("C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\P1040133 - Copy.JPG")]
107 [TestCase("C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\20240809_152410.jpg")]
108 [Category("SetOriginalPath")]
109 public void SetOriginalPath(string path)
110 {
111 IDuplicatedFile duplicatedFile = new DuplicatedFile();
112
113 duplicatedFile.OriginalPath = path;
114
115 Assert.That(duplicatedFile.OriginalPath, Is.EqualTo(path));
116
117 }
118
119 #endregion
120
121 #region Public Method Tests
122
123 [TestCase("C:\\Users\\Alexa\\repos\\duplicate-file-locator\\test_files\\og\\P1040133.JPG")]
124 [Category("AddDuplicatePath")]
125 public void AddDuplicatePath(string path)
126 {
127 IDuplicatedFile duplicatedFile = new DuplicatedFile();
128
129 int numDuplicates = duplicatedFile.DuplicatePaths.Count;
130 duplicatedFile.AddDuplicatePath(path);
131
132 Assert.That(duplicatedFile.DuplicatePaths.Count, Is.EqualTo(numDuplicates+1));
133 }
134
135 #endregion
136 }
137}
void DuplicatedFile_InitialisesHashAndDuplicatePath(string fileHash, string filePath)
void DuplicatedFile_InitialisesHashOriginalPathAndDuplicatePath(string fileHash, string filePath, string[] duplicatePaths)
List< string > DuplicatePaths
List of paths to duplicate files.
void AddDuplicatePath(string path)
Method adds path to DuplicatePaths.