49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using System.Reflection;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace Speckle.InterfaceGenerator.Tests;
|
|
|
|
public class VisibilityModifierTests
|
|
{
|
|
[Fact]
|
|
public void IExplicitlyPublicService_IsPublic()
|
|
{
|
|
var type = typeof(IExplicitlyPublicService);
|
|
type.Attributes.Should().HaveFlag(TypeAttributes.Public);
|
|
}
|
|
|
|
[Fact]
|
|
public void IExplicitlyInternalService_IsInternal()
|
|
{
|
|
var type = typeof(IExplicitlyInternalService);
|
|
type.Attributes.Should().HaveFlag(TypeAttributes.NotPublic);
|
|
}
|
|
|
|
[Fact]
|
|
public void IImplicitlyPublicService_IsPublic()
|
|
{
|
|
var type = typeof(IImplicitlyPublicService);
|
|
type.Attributes.Should().HaveFlag(TypeAttributes.Public);
|
|
}
|
|
|
|
[Fact]
|
|
public void IImplicitlyInternalService_IsInternal()
|
|
{
|
|
var type = typeof(IImplicitlyInternalService);
|
|
type.Attributes.Should().HaveFlag(TypeAttributes.NotPublic);
|
|
}
|
|
}
|
|
|
|
[GenerateAutoInterface(VisibilityModifier = "public")]
|
|
internal class ExplicitlyPublicService : IExplicitlyPublicService { }
|
|
|
|
[GenerateAutoInterface(VisibilityModifier = "internal")]
|
|
public class ExplicitlyInternalService : IExplicitlyInternalService { }
|
|
|
|
[GenerateAutoInterface]
|
|
public class ImplicitlyPublicService : IImplicitlyPublicService { }
|
|
|
|
[GenerateAutoInterface]
|
|
internal class ImplicitlyInternalService : IImplicitlyInternalService { }
|