Skip to content

Commit 017c96f

Browse files
added ut
1 parent 6030664 commit 017c96f

File tree

3 files changed

+141
-38
lines changed

3 files changed

+141
-38
lines changed

src/LCT.Common.UTests/FolderActionTest.cs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -86,44 +86,6 @@ public void CopyToTargetDirectory_PassingDirsWithFiles_ReturnSuccess()
8686
//Assert
8787
Assert.IsTrue(acutal);
8888
}
89-
[Test]
90-
public void CopyToTargetDirectory_WhenIOExceptionOccurs_ReturnsFalse()
91-
{
92-
// Arrange
93-
string sourcePath = $"{Path.GetTempPath()}/sourcePath/";
94-
string targetPath = $"{Path.GetTempPath()}/targetPath/";
95-
var folderAction = new FolderAction();
96-
97-
// Simulate IOException by creating a file with the same name as the target directory
98-
File.WriteAllText(targetPath, "This will cause an IOException");
99-
100-
// Act
101-
var actual = folderAction.CopyToTargetDirectory(sourcePath, targetPath);
102-
103-
// Assert
104-
Assert.IsFalse(actual);
105-
106-
// Cleanup
107-
File.Delete(targetPath);
108-
}
109-
110-
[Test]
111-
public void CopyToTargetDirectory_WhenSecurityExceptionOccurs_ReturnsFalse()
112-
{
113-
// Arrange
114-
string sourcePath = $"{Path.GetTempPath()}/sourcePath/";
115-
string targetPath = $"{Path.GetTempPath()}/targetPath/";
116-
var folderAction = new FolderAction();
117-
118-
// Simulate SecurityException by using a restricted directory (e.g., root of C drive)
119-
string restrictedPath = "C:\\RestrictedPath";
120-
121-
// Act
122-
var actual = folderAction.CopyToTargetDirectory(sourcePath, restrictedPath);
123-
124-
// Assert
125-
Assert.IsFalse(actual);
126-
}
12789

12890
}
12991
}

src/LCT.Common.UTests/SettingsManagerTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
using NUnit.Framework;
88
using System;
9+
using System.IO;
910

1011
namespace LCT.Common.UTest
1112
{
@@ -73,5 +74,40 @@ public void IsAzureDevOpsDebugEnabled_WhenSystemDebugIsNotSet_ShouldReturnFalse(
7374
// Assert
7475
Assert.That(result, Is.False);
7576
}
77+
[Test]
78+
public void DisplayHelp_WhenFileExists_ShouldOutputFileContent()
79+
{
80+
// Arrange
81+
string testFilePath = "CLIUsageNpkg.txt";
82+
string expectedContent = "This is a test content for CLI usage.";
83+
File.WriteAllText(testFilePath, expectedContent);
84+
85+
using StringWriter consoleOutput = new StringWriter();
86+
Console.SetOut(consoleOutput);
87+
88+
// Act
89+
SettingsManager.DisplayHelp();
90+
91+
// Assert
92+
string actualOutput = consoleOutput.ToString().Trim();
93+
Assert.That(actualOutput, Is.EqualTo(expectedContent));
94+
95+
// Cleanup
96+
File.Delete(testFilePath);
97+
}
98+
99+
[Test]
100+
public void DisplayHelp_WhenFileDoesNotExist_ShouldThrowFileNotFoundException()
101+
{
102+
// Arrange
103+
string testFilePath = "CLIUsageNpkg.txt";
104+
if (File.Exists(testFilePath))
105+
{
106+
File.Delete(testFilePath);
107+
}
108+
109+
// Act & Assert
110+
Assert.Throws<FileNotFoundException>(() => SettingsManager.DisplayHelp());
111+
}
76112
}
77113
}

src/LCT.Services.UTest/JFrogServiceUTest.cs

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,5 +295,110 @@ public async Task GetPackageInfo_ResultsWith_InvalidOperationException()
295295
// Assert
296296
Assert.Null(actual);
297297
}
298+
[Test]
299+
public async Task GetNpmComponentDataByRepo_GetsRepoInfo_Successfully()
300+
{
301+
// Arrange
302+
AqlResult aqlResult = new AqlResult()
303+
{
304+
Name = "example-package-1.0.0.tgz",
305+
Path = "@testfolder/-/folder",
306+
Repo = "npm-repo"
307+
};
308+
309+
IList<AqlResult> results = new List<AqlResult> { aqlResult };
310+
311+
AqlResponse aqlResponse = new AqlResponse { Results = results };
312+
313+
var aqlResponseSerialized = JsonConvert.SerializeObject(aqlResponse);
314+
var content = new StringContent(aqlResponseSerialized, Encoding.UTF8, "application/json");
315+
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
316+
{
317+
Content = content
318+
};
319+
320+
Mock<IJfrogAqlApiCommunicationFacade> mockJfrogApiComFacade = new Mock<IJfrogAqlApiCommunicationFacade>();
321+
mockJfrogApiComFacade
322+
.Setup(x => x.GetNpmComponentDataByRepo(It.IsAny<string>()))
323+
.ReturnsAsync(httpResponseMessage);
324+
325+
// Act
326+
IJFrogService jFrogService = new JFrogService(mockJfrogApiComFacade.Object);
327+
IList<AqlResult> actual = await jFrogService.GetNpmComponentDataByRepo("npm-repo");
328+
329+
// Assert
330+
Assert.That(actual.Count, Is.GreaterThan(0));
331+
Assert.That(actual[0].Name, Is.EqualTo("example-package-1.0.0.tgz"));
332+
}
333+
334+
[Test]
335+
public async Task GetNpmComponentDataByRepo_ResultsWith_NoContent()
336+
{
337+
// Arrange
338+
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.NoContent);
339+
340+
Mock<IJfrogAqlApiCommunicationFacade> mockJfrogApiComFacade = new Mock<IJfrogAqlApiCommunicationFacade>();
341+
mockJfrogApiComFacade
342+
.Setup(x => x.GetNpmComponentDataByRepo(It.IsAny<string>()))
343+
.ReturnsAsync(httpResponseMessage);
344+
345+
// Act
346+
IJFrogService jFrogService = new JFrogService(mockJfrogApiComFacade.Object);
347+
IList<AqlResult> actual = await jFrogService.GetNpmComponentDataByRepo("npm-repo");
348+
349+
// Assert
350+
Assert.That(actual.Count, Is.EqualTo(0));
351+
}
352+
353+
[Test]
354+
public async Task GetNpmComponentDataByRepo_ResultsWith_HttpRequestException()
355+
{
356+
// Arrange
357+
Mock<IJfrogAqlApiCommunicationFacade> mockJfrogApiComFacade = new Mock<IJfrogAqlApiCommunicationFacade>();
358+
mockJfrogApiComFacade
359+
.Setup(x => x.GetNpmComponentDataByRepo(It.IsAny<string>()))
360+
.Throws<HttpRequestException>();
361+
362+
// Act
363+
IJFrogService jFrogService = new JFrogService(mockJfrogApiComFacade.Object);
364+
IList<AqlResult> actual = await jFrogService.GetNpmComponentDataByRepo("npm-repo");
365+
366+
// Assert
367+
Assert.That(actual.Count, Is.EqualTo(0));
368+
}
369+
370+
[Test]
371+
public async Task GetNpmComponentDataByRepo_ResultsWith_InvalidOperationException()
372+
{
373+
// Arrange
374+
Mock<IJfrogAqlApiCommunicationFacade> mockJfrogApiComFacade = new Mock<IJfrogAqlApiCommunicationFacade>();
375+
mockJfrogApiComFacade
376+
.Setup(x => x.GetNpmComponentDataByRepo(It.IsAny<string>()))
377+
.Throws<InvalidOperationException>();
378+
379+
// Act
380+
IJFrogService jFrogService = new JFrogService(mockJfrogApiComFacade.Object);
381+
IList<AqlResult> actual = await jFrogService.GetNpmComponentDataByRepo("npm-repo");
382+
383+
// Assert
384+
Assert.That(actual.Count, Is.EqualTo(0));
385+
}
386+
387+
[Test]
388+
public async Task GetNpmComponentDataByRepo_ResultsWith_TaskCanceledException()
389+
{
390+
// Arrange
391+
Mock<IJfrogAqlApiCommunicationFacade> mockJfrogApiComFacade = new Mock<IJfrogAqlApiCommunicationFacade>();
392+
mockJfrogApiComFacade
393+
.Setup(x => x.GetNpmComponentDataByRepo(It.IsAny<string>()))
394+
.Throws<TaskCanceledException>();
395+
396+
// Act
397+
IJFrogService jFrogService = new JFrogService(mockJfrogApiComFacade.Object);
398+
IList<AqlResult> actual = await jFrogService.GetNpmComponentDataByRepo("npm-repo");
399+
400+
// Assert
401+
Assert.That(actual.Count, Is.EqualTo(0));
402+
}
298403
}
299404
}

0 commit comments

Comments
 (0)