5 Commits

Author SHA1 Message Date
15220e7135 Merge pull request 'Fix checkForNewerStuffTest' (#5) from fix/checkForNewerStuffTest into dev
Reviewed-on: #5
2023-06-19 22:37:06 +00:00
590b06fc86 Fix checkForNewerStuffTest
Fixed the tests that stopped working after refactoring #4
2023-06-20 00:35:31 +02:00
65b15f657d remove getDatabaseFromRegex 2023-06-19 22:37:52 +02:00
82a854dd8b refactor writeDatabaseAccessTimeToFile 2023-06-19 22:33:30 +02:00
5018856aab refactor writePackageNamesAndVersionToFile 2023-06-19 22:30:48 +02:00
2 changed files with 22 additions and 45 deletions

View File

@ -7,9 +7,11 @@ public class checkForNewerStuffTest {
public void checkForNewerPackages_throwsExceptionIfNoFilesExist() {
// Arrange
PacserverUtils utils = new PacserverUtils();
File.Delete("/tmp/packages_before.txt");
File.Delete("/tmp/packages_after.txt");
// Act
Action act = () => utils.diff("/tmp/before_update.txt", "/tmp/after_update.txt");
Action act = () => utils.diff("/tmp/packages_before.txt", "/tmp/packages_after.txt");
// Assert
act.Should().Throw<FileNotFoundException>().WithMessage("Necessary files could not be found");
@ -26,8 +28,8 @@ public class checkForNewerStuffTest {
utils.getEveryPackageNameAndVersion("after", "/tmp/packages_after.txt");
// Assert
File.Exists("/tmp/before_update.txt").Should().BeTrue();
File.Exists("/tmp/after_update.txt").Should().BeTrue();
File.Exists("/tmp/packages_before.txt").Should().BeTrue();
File.Exists("/tmp/packages_before.txt").Should().BeTrue();
}
[Fact]
@ -45,16 +47,14 @@ public class checkForNewerStuffTest {
}
[Fact]
public void getEveryPackageNameAndVersionViaFolderName_throwsExceptionIfListIsEmpty() {
public void getEveryPackageNameAndVersionViaFolderName_throwsExceptionIfModeIsNotValid() {
// Arrange
PacserverUtils utils = new PacserverUtils();
Directory.CreateDirectory("/tmp/local");
utils.pacmanDatabaseDirectory = "/tmp/";
// Act
Action act = () => utils.getEveryPackageNameAndVersion("before", "/tmp/packages_before.txt");
Action act = () => utils.getEveryPackageNameAndVersion("test", "/tmp/test.txt");
// Assert
act.Should().Throw<Exception>().WithMessage("How did you execute this without any packages?");
act.Should().Throw<ArgumentException>().WithMessage("No valid mode was given. Valid modes are before and after");
}
}

View File

@ -63,21 +63,14 @@ public class PacserverUtils {
}
public void writePackageNamesAndVersionToFile(string filePath) {
if (!File.Exists(filePath)) {
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (StreamWriter sw = new StreamWriter(filePath)) {
foreach (string package in packageNamesAndVersion) {
sw.WriteLine(package);
}
}
}
} else if (File.Exists(filePath)) {
if (File.Exists(filePath)) {
File.Delete(filePath);
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (var sw = new StreamWriter(filePath)) {
foreach (string package in packageNamesAndVersion) {
sw.WriteLine(package);
}
}
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (StreamWriter sw = new StreamWriter(filePath)) {
foreach (string package in packageNamesAndVersion) {
sw.WriteLine(package);
}
}
}
@ -111,18 +104,13 @@ public class PacserverUtils {
}
public void writeDatabaseAccessTimeToFile(string filePath, string database) {
if (!File.Exists(filePath)) {
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (StreamWriter sw = new StreamWriter(filePath)) {
sw.WriteLine(database + " " + File.GetLastAccessTime(database));
}
}
} else if (File.Exists(filePath)) {
if (File.Exists(filePath)) {
File.Delete(filePath);
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (var sw = new StreamWriter(filePath)) {
sw.WriteLine(database + " " + File.GetLastAccessTime(database));
}
}
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
using (StreamWriter sw = new StreamWriter(filePath)) {
sw.WriteLine(database + " " + File.GetLastAccessTime(database));
}
}
}
@ -130,21 +118,10 @@ public class PacserverUtils {
public List<String> databasesToTransfer = new List<String>();
public void filterDiffOutputForDatabases() {
foreach (string database in diffOfPackagesOrDatabases) {
databasesToTransfer.Add(getDatabaseFromRegex(database, @"\/(?:[\w.-]+\/)*[\w.-]+(?:\.\w+)*\/*db")); // https://regex101.com/r/Wm5M0P/1
databasesToTransfer.Add(Regex.Match(database, @"\/(?:[\w.-]+\/)*[\w.-]+(?:\.\w+)*\/*db").Value); // https://regex101.com/r/Wm5M0P/1
}
}
public string getDatabaseFromRegex(string input, string pattern) {
string match = string.Empty;
MatchCollection matchCollection = Regex.Matches(input, pattern);
foreach (Match matches in matchCollection) {
match = matches.Value;
}
return match;
}
private static List<String> newerPackagesAndDatabases = new List<String>();
public async void transferPacmanCache() {
HttpClient client = new HttpClient();