Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="Microsoft.VisualStudio.Debugger.Interop.10.0" Version="17.0.32112.339" />
<PackageReference Include="MessagePack" Version="2.5.187" />
<PackageReference Include="MessagePack" Version="2.5.301" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
using ast_visual_studio_extension.CxCLI;
using ast_visual_studio_extension.CxExtension.CxAssist.Realtime.Asca;
using ast_visual_studio_extension.CxWrapper.Models;
using Moq;
using System;
using Xunit;

namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
Expand All @@ -15,34 +11,19 @@ namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
[Trait("Category", "Integration")]
public class AscaServiceTests
{
private readonly CxWrapper _wrapperInstance;

public AscaServiceTests()
{
// Create a real CxConfig for testing (doesn't make actual HTTP calls in unit tests)
var config = new CxConfig
{
ApiKey = "test-api-key"
};

// Create a real CxWrapper instance - it won't make actual calls unless explicitly invoked
_wrapperInstance = new CxWrapper(config, typeof(AscaServiceTests));
}

[Fact]
public void AscaService_GetInstance_ReturnsServiceInstance()
{
// Get first instance
var service1 = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.NotNull(service1);
Assert.NotNull(service);
}

[Fact]
public void AscaService_GetInstance_ReturnsSingletonInstance()
{
var service1 = AscaService.GetInstance(_wrapperInstance);
var service2 = AscaService.GetInstance(_wrapperInstance);
var service1 = AscaService.GetInstance(null);
var service2 = AscaService.GetInstance(null);

Assert.Same(service1, service2);
}
Expand All @@ -56,7 +37,7 @@ public void AscaService_GetInstance_ReturnsSingletonInstance()
[InlineData("test.jsx")]
public void AscaService_ShouldScanFile_WithValidExtension_ReturnsTrue(string filePath)
{
var service = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.True(service.ShouldScanFile(filePath));
}
Expand All @@ -68,7 +49,7 @@ public void AscaService_ShouldScanFile_WithValidExtension_ReturnsTrue(string fil
[InlineData("test.yml")]
public void AscaService_ShouldScanFile_WithInvalidExtension_ReturnsFalse(string filePath)
{
var service = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.False(service.ShouldScanFile(filePath));
}
Expand All @@ -79,52 +60,45 @@ public void AscaService_ShouldScanFile_WithInvalidExtension_ReturnsFalse(string
[InlineData("C:\\dist\\bundle.js")]
public void AscaService_ShouldScanFile_InExcludedPath_ReturnsFalse(string filePath)
{
var service = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.False(service.ShouldScanFile(filePath));
}

[Fact]
public void AscaService_ShouldScanFile_WithNull_ReturnsFalse()
{
var service = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.False(service.ShouldScanFile(null));
}

[Fact]
public void AscaService_ShouldScanFile_WithEmpty_ReturnsFalse()
{
var service = AscaService.GetInstance(_wrapperInstance);
var service = AscaService.GetInstance(null);

Assert.False(service.ShouldScanFile(string.Empty));
}

[Fact]
public async System.Threading.Tasks.Task AscaService_UnregisterAsync_AllowsReinitializationAsync()
{
var service1 = AscaService.GetInstance(_wrapperInstance);
var service1 = AscaService.GetInstance(null);
await service1.UnregisterAsync();

// After unregister, next GetInstance should create new instance
var service2 = AscaService.GetInstance(_wrapperInstance);
var service2 = AscaService.GetInstance(null);

// Should be different instances after unregister
Assert.NotSame(service1, service2);
}

[Fact]
public void AscaService_MultipleGetInstance_WithDifferentWrappers_StillReturnsSingleton()
public void AscaService_MultipleGetInstance_WithDifferentPackages_StillReturnsSingleton()
{
var config1 = new CxConfig { ApiKey = "test1" };
var config2 = new CxConfig { ApiKey = "test2" };
var wrapper1 = new Mock<ast_visual_studio_extension.CxCLI.CxWrapper>(config1, typeof(AscaServiceTests));
var wrapper2 = new Mock<ast_visual_studio_extension.CxCLI.CxWrapper>(config2, typeof(AscaServiceTests));

var service1 = AscaService.GetInstance(wrapper1.Object);
var service2 = AscaService.GetInstance(wrapper2.Object);
var service1 = AscaService.GetInstance(null);
var service2 = AscaService.GetInstance(null);

// Singleton pattern returns same instance regardless of wrapper
// Singleton pattern returns same instance regardless of package
Assert.Same(service1, service2);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using ast_visual_studio_extension.CxCLI;
using ast_visual_studio_extension.CxExtension.CxAssist.Realtime.Containers;
using ast_visual_studio_extension.CxWrapper.Models;
using System;
using Xunit;

namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
Expand All @@ -14,31 +11,19 @@ namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
[Trait("Category", "Integration")]
public class ContainersServiceTests
{
private readonly CxWrapper _wrapperInstance;

public ContainersServiceTests()
{
var config = new CxConfig
{
ApiKey = "test-api-key"
};

_wrapperInstance = new CxWrapper(config, typeof(ContainersServiceTests));
}

[Fact]
public void ContainersService_GetInstance_ReturnsServiceInstance()
{
var service = ContainersService.GetInstance(_wrapperInstance, "docker");
var service = ContainersService.GetInstance(null, "docker");

Assert.NotNull(service);
}

[Fact]
public void ContainersService_GetInstance_ReturnsSingletonInstance()
{
var service1 = ContainersService.GetInstance(_wrapperInstance, "docker");
var service2 = ContainersService.GetInstance(_wrapperInstance, "podman");
var service1 = ContainersService.GetInstance(null, "docker");
var service2 = ContainersService.GetInstance(null, "podman");

// Singleton pattern returns same instance regardless of container engine
Assert.Same(service1, service2);
Expand All @@ -50,7 +35,7 @@ public void ContainersService_GetInstance_ReturnsSingletonInstance()
[InlineData("C:\\helm\\values.yaml")]
public void ContainersService_ShouldScanFile_WithValidType_ReturnsTrue(string filePath)
{
var service = ContainersService.GetInstance(_wrapperInstance, "docker");
var service = ContainersService.GetInstance(null, "docker");

Assert.True(service.ShouldScanFile(filePath));
}
Expand All @@ -61,26 +46,26 @@ public void ContainersService_ShouldScanFile_WithValidType_ReturnsTrue(string fi
[InlineData("package.json")]
public void ContainersService_ShouldScanFile_WithInvalidType_ReturnsFalse(string filePath)
{
var service = ContainersService.GetInstance(_wrapperInstance, "docker");
var service = ContainersService.GetInstance(null, "docker");

Assert.False(service.ShouldScanFile(filePath));
}

[Fact]
public void ContainersService_ShouldScanFile_WithNull_ReturnsFalse()
{
var service = ContainersService.GetInstance(_wrapperInstance, "docker");
var service = ContainersService.GetInstance(null, "docker");

Assert.False(service.ShouldScanFile(null));
}

[Fact]
public async System.Threading.Tasks.Task ContainersService_UnregisterAsync_AllowsReinitializationAsync()
{
var service1 = ContainersService.GetInstance(_wrapperInstance, "docker");
var service1 = ContainersService.GetInstance(null, "docker");
await service1.UnregisterAsync();

var service2 = ContainersService.GetInstance(_wrapperInstance, "docker");
var service2 = ContainersService.GetInstance(null, "docker");

Assert.NotSame(service1, service2);
}
Expand All @@ -90,7 +75,7 @@ public async System.Threading.Tasks.Task ContainersService_UnregisterAsync_Allow
[InlineData("podman")]
public void ContainersService_GetInstance_AcceptsContainerEngine(string engine)
{
var service = ContainersService.GetInstance(_wrapperInstance, engine);
var service = ContainersService.GetInstance(null, engine);

Assert.NotNull(service);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
using ast_visual_studio_extension.CxCLI;
using ast_visual_studio_extension.CxExtension.CxAssist.Realtime.Iac;
using ast_visual_studio_extension.CxWrapper.Models;
using System;
using Xunit;

namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
Expand All @@ -14,31 +11,19 @@ namespace ast_visual_studio_extension_tests.cx_integration_tests.Services
[Trait("Category", "Integration")]
public class IacServiceTests
{
private readonly CxWrapper _wrapperInstance;

public IacServiceTests()
{
var config = new CxConfig
{
ApiKey = "test-api-key"
};

_wrapperInstance = new CxWrapper(config, typeof(IacServiceTests));
}

[Fact]
public void IacService_GetInstance_ReturnsServiceInstance()
{
var service = IacService.GetInstance(_wrapperInstance);
var service = IacService.GetInstance(null);

Assert.NotNull(service);
}

[Fact]
public void IacService_GetInstance_ReturnsSingletonInstance()
{
var service1 = IacService.GetInstance(_wrapperInstance);
var service2 = IacService.GetInstance(_wrapperInstance);
var service1 = IacService.GetInstance(null);
var service2 = IacService.GetInstance(null);

Assert.Same(service1, service2);
}
Expand All @@ -50,7 +35,7 @@ public void IacService_GetInstance_ReturnsSingletonInstance()
[InlineData("dockerfile")]
public void IacService_ShouldScanFile_WithValidType_ReturnsTrue(string filePath)
{
var service = IacService.GetInstance(_wrapperInstance);
var service = IacService.GetInstance(null);

Assert.True(service.ShouldScanFile(filePath));
}
Expand All @@ -61,26 +46,26 @@ public void IacService_ShouldScanFile_WithValidType_ReturnsTrue(string filePath)
[InlineData("script.sh")]
public void IacService_ShouldScanFile_WithInvalidType_ReturnsFalse(string filePath)
{
var service = IacService.GetInstance(_wrapperInstance);
var service = IacService.GetInstance(null);

Assert.False(service.ShouldScanFile(filePath));
}

[Fact]
public void IacService_ShouldScanFile_WithNull_ReturnsFalse()
{
var service = IacService.GetInstance(_wrapperInstance);
var service = IacService.GetInstance(null);

Assert.False(service.ShouldScanFile(null));
}

[Fact]
public async System.Threading.Tasks.Task IacService_UnregisterAsync_AllowsReinitializationAsync()
{
var service1 = IacService.GetInstance(_wrapperInstance);
var service1 = IacService.GetInstance(null);
await service1.UnregisterAsync();

var service2 = IacService.GetInstance(_wrapperInstance);
var service2 = IacService.GetInstance(null);

Assert.NotSame(service1, service2);
}
Expand Down
Loading
Loading