-
-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #34 from christianhelle/options-page
Implement Options page
- Loading branch information
Showing
73 changed files
with
1,914 additions
and
177 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
63 changes: 63 additions & 0 deletions
63
src/ApiClientCodeGen.Tests/CustomTool/SingleFileCodeGeneratorTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Generators; | ||
using FluentAssertions; | ||
using Microsoft.VisualStudio.Shell.Interop; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
using Moq; | ||
using System; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.CustomTool | ||
{ | ||
[TestClass] | ||
public class SingleFileCodeGeneratorTests | ||
{ | ||
private const SupportedLanguage lang = SupportedLanguage.CSharp; | ||
|
||
[DataTestMethod] | ||
[DataRow(SupportedCodeGenerator.AutoRest)] | ||
[DataRow(SupportedCodeGenerator.NSwag)] | ||
[DataRow(SupportedCodeGenerator.Swagger)] | ||
[DataRow(SupportedCodeGenerator.OpenApi)] | ||
public void Generate_Test(SupportedCodeGenerator generator) | ||
{ | ||
var code = Test.CreateAnnonymous<string>(); | ||
var input = Test.CreateAnnonymous<string>(); | ||
var contents = Test.CreateAnnonymous<string>(); | ||
var @namespace = Test.CreateAnnonymous<string>(); | ||
var rgbOutputFileContents = new[] { IntPtr.Zero }; | ||
|
||
var progressMock = new Mock<IVsGeneratorProgress>(); | ||
|
||
var generatorMock = new Mock<ICodeGenerator>(); | ||
generatorMock | ||
.Setup(c => c.GenerateCode(progressMock.Object)) | ||
.Returns(code); | ||
|
||
var factoryMock = new Mock<ICodeGeneratorFactory>(); | ||
factoryMock | ||
.Setup(c => c.Create(@namespace, contents, input, lang, generator)) | ||
.Returns(generatorMock.Object); | ||
|
||
var sut = new TestSingleFileCodeGenerator(generator) | ||
{ | ||
Factory = factoryMock.Object | ||
}; | ||
|
||
var result = sut.Generate( | ||
input, | ||
contents, | ||
@namespace, | ||
rgbOutputFileContents, | ||
out var pcbOutput, | ||
progressMock.Object); | ||
|
||
result.Should().Be(0); | ||
pcbOutput.Should().Be((uint)code.Length); | ||
rgbOutputFileContents[0].Should().NotBe(IntPtr.Zero); | ||
|
||
progressMock.Verify( | ||
c => c.Progress(It.IsAny<uint>(), It.IsAny<uint>()), | ||
Times.Exactly(2)); | ||
} | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/ApiClientCodeGen.Tests/CustomTool/TestSingleFileCodeGenerator.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.CustomTool | ||
{ | ||
internal class TestSingleFileCodeGenerator : SingleFileCodeGenerator | ||
{ | ||
internal TestSingleFileCodeGenerator( | ||
SupportedCodeGenerator supportedCodeGenerator) | ||
: base(supportedCodeGenerator, SupportedLanguage.CSharp) | ||
{ | ||
} | ||
|
||
public override int DefaultExtension(out string pbstrDefaultExtension) | ||
{ | ||
pbstrDefaultExtension = ".cs"; | ||
return 0; | ||
} | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
src/ApiClientCodeGen.Tests/Extensions/GetCustomToolNameTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; | ||
using FluentAssertions; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.Extensions | ||
{ | ||
[TestClass] | ||
public class GetCustomToolNameTests | ||
{ | ||
[TestMethod] | ||
public void GetCustomToolName_AutoRest() | ||
=> SupportedCodeGenerator.AutoRest | ||
.GetCustomToolName() | ||
.Should() | ||
.Contain("AutoRest"); | ||
|
||
[TestMethod] | ||
public void GetCustomToolName_NSwag() | ||
=> SupportedCodeGenerator.NSwag | ||
.GetCustomToolName() | ||
.Should() | ||
.Contain("NSwag"); | ||
|
||
[TestMethod] | ||
public void GetCustomToolName_Swagger() | ||
=> SupportedCodeGenerator.Swagger | ||
.GetCustomToolName() | ||
.Should() | ||
.Contain("Swagger"); | ||
|
||
[TestMethod] | ||
public void GetCustomToolName_OpenApi() | ||
=> SupportedCodeGenerator.OpenApi | ||
.GetCustomToolName() | ||
.Should() | ||
.Contain("OpenApi"); | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
src/ApiClientCodeGen.Tests/Extensions/GetDependenciesTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
using System.Linq; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; | ||
using FluentAssertions; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.Extensions | ||
{ | ||
[TestClass] | ||
public class GetDependenciesTests | ||
{ | ||
[TestMethod] | ||
public void GetDependencies_AutoRest() | ||
=> SupportedCodeGenerator.AutoRest | ||
.GetDependencies() | ||
.Any(c => c.Name == "Microsoft.Rest.ClientRuntime") | ||
.Should() | ||
.BeTrue(); | ||
|
||
[TestMethod] | ||
public void GetDependencies_NSwag() | ||
=> SupportedCodeGenerator.NSwag | ||
.GetDependencies() | ||
.Any(c => c.Name == "Newtonsoft.Json") | ||
.Should() | ||
.BeTrue(); | ||
|
||
[TestMethod] | ||
public void GetDependencies_Swagger() | ||
=> SupportedCodeGenerator.Swagger | ||
.GetDependencies() | ||
.Any(c => c.Name == "RestSharp" || c.Name == "JsonSubTypes") | ||
.Should() | ||
.BeTrue(); | ||
|
||
[TestMethod] | ||
public void GetDependencies_OpenApi() | ||
=> SupportedCodeGenerator.OpenApi | ||
.GetDependencies() | ||
.Any(c => c.Name == "RestSharp" || c.Name == "JsonSubTypes") | ||
.Should() | ||
.BeTrue(); | ||
} | ||
} |
43 changes: 43 additions & 0 deletions
43
src/ApiClientCodeGen.Tests/Extensions/GetSupportedCodeGeneratorTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Core; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool.AutoRest; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool.NSwag; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool.OpenApi; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.CustomTool.Swagger; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; | ||
using FluentAssertions; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.Extensions | ||
{ | ||
[TestClass] | ||
public class GetSupportedCodeGeneratorTests | ||
{ | ||
[TestMethod] | ||
public void GetSupportedCodeGenerator_AutoRest() | ||
=> typeof(AutoRestCodeGenerator) | ||
.GetSupportedCodeGenerator() | ||
.Should() | ||
.Be(SupportedCodeGenerator.AutoRest); | ||
|
||
[TestMethod] | ||
public void GetSupportedCodeGenerator_NSwag() | ||
=> typeof(NSwagCodeGenerator) | ||
.GetSupportedCodeGenerator() | ||
.Should() | ||
.Be(SupportedCodeGenerator.NSwag); | ||
|
||
[TestMethod] | ||
public void GetSupportedCodeGenerator_Swagger() | ||
=> typeof(SwaggerCodeGenerator) | ||
.GetSupportedCodeGenerator() | ||
.Should() | ||
.Be(SupportedCodeGenerator.Swagger); | ||
|
||
[TestMethod] | ||
public void GetSupportedCodeGenerator_OpenApi() | ||
=> typeof(OpenApiCodeGenerator) | ||
.GetSupportedCodeGenerator() | ||
.Should() | ||
.Be(SupportedCodeGenerator.OpenApi); | ||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
src/ApiClientCodeGen.Tests/Extensions/StringToIntPtrTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
using System; | ||
using ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Extensions; | ||
using FluentAssertions; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
|
||
namespace ChristianHelle.DeveloperTools.CodeGenerators.ApiClient.Tests.Extensions | ||
{ | ||
[TestClass] | ||
public class StringToIntPtrTests | ||
{ | ||
private string str; | ||
private IntPtr result; | ||
private uint length; | ||
|
||
[TestInitialize] | ||
public void Init() | ||
{ | ||
str = Test.CreateAnnonymous<string>(); | ||
result = str.ConvertToIntPtr(out length); | ||
} | ||
|
||
[TestMethod] | ||
public void IntPtr_Not_Zero() | ||
=> result.Should().NotBe(IntPtr.Zero); | ||
|
||
[TestMethod] | ||
public void Length_Not_Zero() | ||
=> length.Should().BeGreaterThan(0); | ||
|
||
[TestMethod] | ||
public void Length_Matches_String_Length() | ||
=> length.Should().Be((uint)str.Length); | ||
} | ||
} |
Oops, something went wrong.