Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
@@ -1,17 +1,17 @@
using FluentAssertions;
using Refit;
using Refitter.Tests.CustomGenerated;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class CustomOutputFolderGeneratorTests
{
[Fact]
[Test]
public void Can_Create_File_In_Custom_Path() =>
File.Exists("../../../CustomGenerated/CustomGenerated.cs").Should().BeTrue();

[Fact]
[Test]
public void Can_Resolve_Refit_Interface() =>
RestService.For<IApiInCustomGeneratedFolder>("https://petstore3.swagger.io/api/v3")
.Should()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
using FluentAssertions;
using Refit;
using Refitter.Tests.AdditionalFiles.ByTag;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class MultipleInterfaceByTagGeneratorTests
{
[Theory]
[InlineData(typeof(IPetApi))]
[InlineData(typeof(IUserApi))]
[InlineData(typeof(IStoreApi))]
[Test]
[Arguments(typeof(IPetApi))]
[Arguments(typeof(IUserApi))]
[Arguments(typeof(IStoreApi))]
public void Should_Generate_Interface(Type type) =>
type
.Namespace
.Should()
.Be("Refitter.Tests.AdditionalFiles.ByTag");

[Theory]
[InlineData(typeof(IPetApi))]
[InlineData(typeof(IUserApi))]
[InlineData(typeof(IStoreApi))]
[Test]
[Arguments(typeof(IPetApi))]
[Arguments(typeof(IUserApi))]
[Arguments(typeof(IStoreApi))]
public void Can_Resolve_Refit_Interface(Type type) =>
RestService.For(type, "https://petstore3.swagger.io/api/v3")
.Should()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,58 +1,58 @@
using FluentAssertions;
using Refit;
using Refitter.Tests.AdditionalFiles.ByEndpoint;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class MultipleInterfaceGeneratorTests
{
[Theory]
[InlineData(typeof(IAddPetEndpoint))]
[InlineData(typeof(IUpdatePetEndpoint))]
[InlineData(typeof(IDeletePetEndpoint))]
[InlineData(typeof(ICreateUserEndpoint))]
[InlineData(typeof(IUpdateUserEndpoint))]
[InlineData(typeof(IDeleteUserEndpoint))]
[InlineData(typeof(ILoginUserEndpoint))]
[InlineData(typeof(ILogoutUserEndpoint))]
[InlineData(typeof(IPlaceOrderEndpoint))]
[InlineData(typeof(IGetOrderByIdEndpoint))]
[InlineData(typeof(IDeleteOrderEndpoint))]
[InlineData(typeof(IGetInventoryEndpoint))]
[InlineData(typeof(IGetPetByIdEndpoint))]
[InlineData(typeof(IUploadFileEndpoint))]
[InlineData(typeof(IFindPetsByStatusEndpoint))]
[InlineData(typeof(IFindPetsByTagsEndpoint))]
[InlineData(typeof(IGetUserByNameEndpoint))]
[InlineData(typeof(IUpdatePetWithFormEndpoint))]
[InlineData(typeof(ICreateUsersWithListInputEndpoint))]
[Test]
[Arguments(typeof(IAddPetEndpoint))]
[Arguments(typeof(IUpdatePetEndpoint))]
[Arguments(typeof(IDeletePetEndpoint))]
[Arguments(typeof(ICreateUserEndpoint))]
[Arguments(typeof(IUpdateUserEndpoint))]
[Arguments(typeof(IDeleteUserEndpoint))]
[Arguments(typeof(ILoginUserEndpoint))]
[Arguments(typeof(ILogoutUserEndpoint))]
[Arguments(typeof(IPlaceOrderEndpoint))]
[Arguments(typeof(IGetOrderByIdEndpoint))]
[Arguments(typeof(IDeleteOrderEndpoint))]
[Arguments(typeof(IGetInventoryEndpoint))]
[Arguments(typeof(IGetPetByIdEndpoint))]
[Arguments(typeof(IUploadFileEndpoint))]
[Arguments(typeof(IFindPetsByStatusEndpoint))]
[Arguments(typeof(IFindPetsByTagsEndpoint))]
[Arguments(typeof(IGetUserByNameEndpoint))]
[Arguments(typeof(IUpdatePetWithFormEndpoint))]
[Arguments(typeof(ICreateUsersWithListInputEndpoint))]
public void Should_Generate_Interface(Type type) =>
type
.Namespace
.Should()
.Be("Refitter.Tests.AdditionalFiles.ByEndpoint");

[Theory]
[InlineData(typeof(IAddPetEndpoint))]
[InlineData(typeof(IUpdatePetEndpoint))]
[InlineData(typeof(IDeletePetEndpoint))]
[InlineData(typeof(ICreateUserEndpoint))]
[InlineData(typeof(IUpdateUserEndpoint))]
[InlineData(typeof(IDeleteUserEndpoint))]
[InlineData(typeof(ILoginUserEndpoint))]
[InlineData(typeof(ILogoutUserEndpoint))]
[InlineData(typeof(IPlaceOrderEndpoint))]
[InlineData(typeof(IGetOrderByIdEndpoint))]
[InlineData(typeof(IDeleteOrderEndpoint))]
[InlineData(typeof(IGetInventoryEndpoint))]
[InlineData(typeof(IGetPetByIdEndpoint))]
[InlineData(typeof(IUploadFileEndpoint))]
[InlineData(typeof(IFindPetsByStatusEndpoint))]
[InlineData(typeof(IFindPetsByTagsEndpoint))]
[InlineData(typeof(IGetUserByNameEndpoint))]
[InlineData(typeof(IUpdatePetWithFormEndpoint))]
[InlineData(typeof(ICreateUsersWithListInputEndpoint))]
[Test]
[Arguments(typeof(IAddPetEndpoint))]
[Arguments(typeof(IUpdatePetEndpoint))]
[Arguments(typeof(IDeletePetEndpoint))]
[Arguments(typeof(ICreateUserEndpoint))]
[Arguments(typeof(IUpdateUserEndpoint))]
[Arguments(typeof(IDeleteUserEndpoint))]
[Arguments(typeof(ILoginUserEndpoint))]
[Arguments(typeof(ILogoutUserEndpoint))]
[Arguments(typeof(IPlaceOrderEndpoint))]
[Arguments(typeof(IGetOrderByIdEndpoint))]
[Arguments(typeof(IDeleteOrderEndpoint))]
[Arguments(typeof(IGetInventoryEndpoint))]
[Arguments(typeof(IGetPetByIdEndpoint))]
[Arguments(typeof(IUploadFileEndpoint))]
[Arguments(typeof(IFindPetsByStatusEndpoint))]
[Arguments(typeof(IFindPetsByTagsEndpoint))]
[Arguments(typeof(IGetUserByNameEndpoint))]
[Arguments(typeof(IUpdatePetWithFormEndpoint))]
[Arguments(typeof(ICreateUsersWithListInputEndpoint))]
public void Can_Resolve_Refit_Interface(Type type) =>
RestService.For(type, "https://petstore3.swagger.io/api/v3")
.Should()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
using FluentAssertions;
using Refit;
using Refitter.Tests.AdditionalFiles.OptionalParameters;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class OperationalParametersGeneratorTest
{
[Fact]
[Test]
public void Should_Type_Exist() =>
typeof(ISwaggerPetstoreWithOptionalParameters)
.Namespace
.Should()
.Be("Refitter.Tests.AdditionalFiles.OptionalParameters");

[Fact]
[Test]
public void Can_Resolve_Refit_Interface() =>
RestService.For<ISwaggerPetstoreWithOptionalParameters>("https://petstore3.swagger.io/api/v3")
.Should()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateProgramFile>false</GenerateProgramFile>
<RootNamespace>Refitter.SourceGenerators.Tests</RootNamespace>
</PropertyGroup>

Expand All @@ -11,11 +15,7 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="FluentAssertions" Version="7.2.0" />
<PackageReference Include="System.Text.Json" Version="10.0.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="TUnit" Version="0.6.123" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
using FluentAssertions;
using Refit;
using Refitter.Tests.AdditionalFiles.SingeInterface;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class SingleInterfaceGeneratorTest
{
[Fact]
[Test]
public void Should_Type_Exist() =>
typeof(ISwaggerPetstoreInterface)
.Namespace
.Should()
.Be("Refitter.Tests.AdditionalFiles.SingeInterface");

[Fact]
[Test]
public void Can_Resolve_Refit_Interface() =>
RestService.For<ISwaggerPetstoreInterface>("https://petstore3.swagger.io/api/v3")
.Should()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
using FluentAssertions;
using Refitter.Tests.UseJsonInheritanceConverter;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class UseJsonInheritanceConverterTests
{
[Theory]
[InlineData(typeof(SomeComponent))]
[Test]
[Arguments(typeof(SomeComponent))]
public void Should_Generate_JsonInheritanceConverter_Usage(Type type) =>
type
.GetCustomAttributes(typeof(JsonInheritanceConverterAttribute), false)
.Should()
.HaveCount(1);

[Theory]
[InlineData(typeof(SomeComponent))]
[Test]
[Arguments(typeof(SomeComponent))]
public void Should_Generate_JsonInheritanceAttribute_Usage(Type type) =>
type
.GetCustomAttributes(typeof(JsonInheritanceAttribute), false)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
using System.Text.Json.Serialization;
using FluentAssertions;
using Refitter.Tests.UsePolymorphicSerialization;
using Xunit;
using TUnit.Core;

namespace Refitter.SourceGenerators.Tests;

public class UsePolymorphicSerializationTests
{
[Theory]
[InlineData(typeof(SomeComponent))]
[Test]
[Arguments(typeof(SomeComponent))]
public void Should_Generate_JsonPolymorphicAttribute_Usage(Type type) =>
type
.GetCustomAttributes(typeof(JsonPolymorphicAttribute), false)
.Should()
.HaveCount(1);

[Theory]
[InlineData(typeof(SomeComponent))]
[Test]
[Arguments(typeof(SomeComponent))]
public void Should_Generate_JsonDerivedTypeAttribute_Usage(Type type) =>
type
.GetCustomAttributes(typeof(JsonDerivedTypeAttribute), false)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using FluentAssertions;
using Refitter.Core;
using Xunit;
using TUnit.Core;

namespace Refitter.Tests;

Expand Down Expand Up @@ -47,7 +47,7 @@ public class ApizrGeneratorWithMicrosoftHttpResilienceTests

#region Extended

[Fact]
[Test]
public void Can_Generate_Extended_Registration_For_Single_Interface()
{
string code = ApizrRegistrationGenerator.Generate(
Expand All @@ -60,7 +60,7 @@ public void Can_Generate_Extended_Registration_For_Single_Interface()
code.Should().Contain("AddApizrManagerFor<IPetApi>(optionsBuilder)");
}

[Fact]
[Test]
public void Can_Generate_Extended_Registration_For_Multiple_Interfaces()
{
string code = ApizrRegistrationGenerator.Generate(
Expand All @@ -75,7 +75,7 @@ public void Can_Generate_Extended_Registration_For_Multiple_Interfaces()
code.Should().Contain("AddManagerFor<IStoreApi>()");
}

[Fact]
[Test]
public void Can_Generate_With_HttpMessageHandlers()
{
string code = ApizrRegistrationGenerator.Generate(
Expand All @@ -89,7 +89,7 @@ public void Can_Generate_With_HttpMessageHandlers()
code.Should().Contain("WithDelegatingHandler<DiagnosticMessageHandler>()");
}

[Fact]
[Test]
public void Can_Generate_With_HttpResilience()
{
string code = ApizrRegistrationGenerator.Generate(
Expand All @@ -102,7 +102,7 @@ public void Can_Generate_With_HttpResilience()
code.Should().Contain("AddStandardResilienceHandler");
}

[Fact]
[Test]
public void Can_Generate_Without_TransientErrorHandler()
{
_extendedSettings.DependencyInjectionSettings!.TransientErrorHandler = TransientErrorHandler.None;
Expand All @@ -119,7 +119,7 @@ public void Can_Generate_Without_TransientErrorHandler()
code.Should().NotContain("Backoff.DecorrelatedJitterBackoffV2");
}

[Fact]
[Test]
public void Can_Generate_Without_BaseUrl()
{
_extendedSettings.DependencyInjectionSettings!.BaseUrl = null;
Expand All @@ -138,7 +138,7 @@ public void Can_Generate_Without_BaseUrl()
#region Static


[Fact]
[Test]
public void Can_Generate_Static_Registration_For_Single_Interface()
{
string code = ApizrRegistrationGenerator.Generate(
Expand All @@ -151,7 +151,7 @@ public void Can_Generate_Static_Registration_For_Single_Interface()
code.Should().Contain("CreateManagerFor<IPetApi>(optionsBuilder)");
}

[Fact]
[Test]
public void Can_Generate_Static_Registration_For_Multiple_Interfaces()
{
string code = ApizrRegistrationGenerator.Generate(
Expand Down
Loading
Loading