1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-25 12:45:18 +01:00

Create common test infrastructure project

This commit is contained in:
Matt Gibson 2021-10-29 15:05:45 -04:00 committed by Justin Baur
parent c07794e907
commit 019529a0c2
48 changed files with 210 additions and 202 deletions

View File

@ -74,6 +74,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MySqlMigrations", "util\MyS
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgresMigrations", "util\PostgresMigrations\PostgresMigrations.csproj", "{F72E0229-2EF7-49B3-9004-FF4C0043816E}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgresMigrations", "util\PostgresMigrations\PostgresMigrations.csproj", "{F72E0229-2EF7-49B3-9004-FF4C0043816E}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "test\Common\Common.csproj", "{17DA09D7-0212-4009-879E-6B9CFDE5FA60}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -158,7 +160,6 @@ Global
{F72E0229-2EF7-49B3-9004-FF4C0043816E}.Debug|Any CPU.Build.0 = Debug|Any CPU {F72E0229-2EF7-49B3-9004-FF4C0043816E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F72E0229-2EF7-49B3-9004-FF4C0043816E}.Release|Any CPU.ActiveCfg = Release|Any CPU {F72E0229-2EF7-49B3-9004-FF4C0043816E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F72E0229-2EF7-49B3-9004-FF4C0043816E}.Release|Any CPU.Build.0 = Release|Any CPU {F72E0229-2EF7-49B3-9004-FF4C0043816E}.Release|Any CPU.Build.0 = Release|Any CPU
{EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {EDC0D688-D58C-4CE1-AA07-3606AC6874B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -167,6 +168,10 @@ Global
{0E99A21B-684B-4C59-9831-90F775CAB6F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {0E99A21B-684B-4C59-9831-90F775CAB6F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0E99A21B-684B-4C59-9831-90F775CAB6F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {0E99A21B-684B-4C59-9831-90F775CAB6F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E99A21B-684B-4C59-9831-90F775CAB6F7}.Release|Any CPU.Build.0 = Release|Any CPU {0E99A21B-684B-4C59-9831-90F775CAB6F7}.Release|Any CPU.Build.0 = Release|Any CPU
{17DA09D7-0212-4009-879E-6B9CFDE5FA60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17DA09D7-0212-4009-879E-6B9CFDE5FA60}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17DA09D7-0212-4009-879E-6B9CFDE5FA60}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17DA09D7-0212-4009-879E-6B9CFDE5FA60}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -193,6 +198,7 @@ Global
{F72E0229-2EF7-49B3-9004-FF4C0043816E} = {DD5BD056-4AAE-43EF-BBD2-0B569B8DA84E} {F72E0229-2EF7-49B3-9004-FF4C0043816E} = {DD5BD056-4AAE-43EF-BBD2-0B569B8DA84E}
{EDC0D688-D58C-4CE1-AA07-3606AC6874B8} = {4FDB6543-F68B-4202-9EA6-7FEA984D2D0A} {EDC0D688-D58C-4CE1-AA07-3606AC6874B8} = {4FDB6543-F68B-4202-9EA6-7FEA984D2D0A}
{0E99A21B-684B-4C59-9831-90F775CAB6F7} = {287CFF34-BBDB-4BC4-AF88-1E19A5A4679B} {0E99A21B-684B-4C59-9831-90F775CAB6F7} = {287CFF34-BBDB-4BC4-AF88-1E19A5A4679B}
{17DA09D7-0212-4009-879E-6B9CFDE5FA60} = {DD5BD056-4AAE-43EF-BBD2-0B569B8DA84F}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E01CBF68-2E20-425F-9EDB-E0A6510CA92F} SolutionGuid = {E01CBF68-2E20-425F-9EDB-E0A6510CA92F}

View File

@ -3,7 +3,7 @@ using System.Linq;
using AutoFixture; using AutoFixture;
using AutoFixture.Xunit2; using AutoFixture.Xunit2;
namespace Bit.Core.Test.AutoFixture.Attributes namespace Bit.Test.Common.AutoFixture.Attributes
{ {
public class CustomAutoDataAttribute : AutoDataAttribute public class CustomAutoDataAttribute : AutoDataAttribute
{ {

View File

@ -4,9 +4,9 @@ using Xunit.Sdk;
using AutoFixture.Xunit2; using AutoFixture.Xunit2;
using AutoFixture; using AutoFixture;
namespace Bit.Core.Test.AutoFixture.Attributes namespace Bit.Test.Common.AutoFixture.Attributes
{ {
internal class InlineCustomAutoDataAttribute : CompositeDataAttribute public class InlineCustomAutoDataAttribute : CompositeDataAttribute
{ {
public InlineCustomAutoDataAttribute(Type[] iCustomizationTypes, params object[] values) : base(new DataAttribute[] { public InlineCustomAutoDataAttribute(Type[] iCustomizationTypes, params object[] values) : base(new DataAttribute[] {
new InlineDataAttribute(values), new InlineDataAttribute(values),

View File

@ -0,0 +1,20 @@
using System;
using System.Linq;
using AutoFixture;
namespace Bit.Test.Common.AutoFixture.Attributes
{
public class InlineSutAutoDataAttribute : InlineCustomAutoDataAttribute
{
public InlineSutAutoDataAttribute(params object[] values) : base(
new Type[] { typeof(SutProviderCustomization) }, values)
{ }
public InlineSutAutoDataAttribute(Type[] iCustomizationTypes, params object[] values) : base(
iCustomizationTypes.Append(typeof(SutProviderCustomization)).ToArray(), values)
{ }
public InlineSutAutoDataAttribute(ICustomization[] customizations, params object[] values) : base(
customizations.Append(new SutProviderCustomization()).ToArray(), values)
{ }
}
}

View File

@ -0,0 +1,15 @@
using System;
using System.Linq;
using System.Reflection;
using AutoFixture;
using AutoFixture.Xunit2;
namespace Bit.Test.Common.AutoFixture.Attributes
{
public class SutAutoDataAttribute : CustomAutoDataAttribute
{
public SutAutoDataAttribute(params Type[] iCustomizationTypes) : base(
iCustomizationTypes.Append(typeof(SutProviderCustomization)).ToArray())
{ }
}
}

View File

@ -1,7 +1,7 @@
using AutoFixture; using AutoFixture;
using AutoFixture.AutoNSubstitute; using AutoFixture.AutoNSubstitute;
namespace Bit.Core.Test.AutoFixture namespace Bit.Test.Common.AutoFixture
{ {
public static class FixtureExtensions public static class FixtureExtensions
{ {

View File

@ -1,19 +1,13 @@
using System; using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection; using System.Reflection;
using AutoFixture; using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using AutoMapper; using AutoFixture.Xunit2;
using Bit.Core.Enums; using Bit.Test.Common.Helpers.Factories;
using Bit.Core.Models;
using Bit.Core.Models.Table;
using Bit.Core.Settings;
using Bit.Core.Test.Helpers.Factories;
namespace Bit.Core.Test.AutoFixture.GlobalSettingsFixtures namespace Bit.Test.Common.AutoFixture
{ {
internal class GlobalSettingsBuilder: ISpecimenBuilder public class GlobalSettingsBuilder : ISpecimenBuilder
{ {
public object Create(object request, ISpecimenContext context) public object Create(object request, ISpecimenContext context)
{ {
@ -25,22 +19,27 @@ namespace Bit.Core.Test.AutoFixture.GlobalSettingsFixtures
var pi = request as ParameterInfo; var pi = request as ParameterInfo;
var fixture = new Fixture(); var fixture = new Fixture();
if (pi == null || pi.ParameterType != typeof(Settings.GlobalSettings)) if (pi == null || pi.ParameterType != typeof(Bit.Core.Settings.GlobalSettings))
return new NoSpecimen(); return new NoSpecimen();
return GlobalSettingsFactory.GlobalSettings; return GlobalSettingsFactory.GlobalSettings;
} }
} }
internal class GlobalSettings : ICustomization public class GlobalSettings : ICustomization
{ {
public void Customize(IFixture fixture) public void Customize(IFixture fixture)
{ {
fixture.Customize<Settings.GlobalSettings>(composer => composer fixture.Customize<Bit.Core.Settings.GlobalSettings>(composer => composer
.Without(s => s.BaseServiceUri) .Without(s => s.BaseServiceUri)
.Without(s => s.Attachment) .Without(s => s.Attachment)
.Without(s => s.Send) .Without(s => s.Send)
.Without(s => s.DataProtection)); .Without(s => s.DataProtection));
} }
} }
public class GlobalSettingsCustomizeAttribute : CustomizeAttribute
{
public override ICustomization GetCustomization(ParameterInfo parameter) => new GlobalSettings();
}
} }

View File

@ -1,6 +1,6 @@
using System; using System;
namespace Bit.Core.Test.AutoFixture namespace Bit.Test.Common.AutoFixture
{ {
public interface ISutProvider public interface ISutProvider
{ {

View File

@ -4,9 +4,8 @@ using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System.Reflection; using System.Reflection;
using System.Linq; using System.Linq;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
namespace Bit.Core.Test.AutoFixture namespace Bit.Test.Common.AutoFixture
{ {
public class SutProvider<TSut> : ISutProvider public class SutProvider<TSut> : ISutProvider
{ {

View File

@ -2,7 +2,7 @@ using System;
using AutoFixture; using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
namespace Bit.Core.Test.AutoFixture namespace Bit.Test.Common.AutoFixture.Attributes
{ {
public class SutProviderCustomization : ICustomization, ISpecimenBuilder public class SutProviderCustomization : ICustomization, ISpecimenBuilder
{ {

25
test/Common/Common.csproj Normal file
View File

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<IsPackable>false</IsPackable>
<RootNamespace>Bit.Test.Common</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NSubstitute" Version="4.2.2" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="AutoFixture.Xunit2" Version="4.14.0" />
<PackageReference Include="AutoFixture.AutoNSubstitute" Version="4.14.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Core\Core.csproj" />
<ProjectReference Include="..\..\src\Api\Api.csproj" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,19 @@
using System.Collections.Generic;
using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Settings;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace Bit.Test.Common.Helpers.Factories
{
public static class GlobalSettingsFactory
{
public static GlobalSettings GlobalSettings { get; } = new GlobalSettings();
static GlobalSettingsFactory()
{
var configBuilder = new ConfigurationBuilder().AddUserSecrets<Bit.Api.Startup>();
var Configuration = configBuilder.Build();
ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), GlobalSettings);
}
}
}

View File

@ -7,14 +7,13 @@ using AutoFixture.Kernel;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Test.AutoFixture.OrganizationUserFixtures; using Bit.Core.Test.AutoFixture.OrganizationUserFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Core.Test.AutoFixture.TransactionFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using Core.Models.Data; using Core.Models.Data;
namespace Bit.Core.Test.AutoFixture.CipherFixtures namespace Bit.Core.Test.AutoFixture.CipherFixtures

View File

@ -1,22 +1,15 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.TransactionFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Core.Test.AutoFixture.CollectionFixtures; using Bit.Core.Test.AutoFixture.CollectionFixtures;
using Bit.Core.Test.AutoFixture.CipherFixtures; using Bit.Core.Test.AutoFixture.CipherFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.CollectionCipherFixtures namespace Bit.Core.Test.AutoFixture.CollectionCipherFixtures
{ {

View File

@ -1,19 +1,13 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.TransactionFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.CollectionFixtures namespace Bit.Core.Test.AutoFixture.CollectionFixtures
{ {

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using AutoFixture; using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using Bit.Core.Context; using Bit.Core.Context;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.AutoFixture.CurrentContextFixtures namespace Bit.Core.Test.AutoFixture.CurrentContextFixtures
{ {

View File

@ -1,20 +1,13 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Core.Test.AutoFixture.TransactionFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.DeviceFixtures namespace Bit.Core.Test.AutoFixture.DeviceFixtures
{ {

View File

@ -1,21 +1,13 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Core.Test.AutoFixture.TransactionFixtures;
using AutoFixture.DataAnnotations;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.EmergencyAccessFixtures namespace Bit.Core.Test.AutoFixture.EmergencyAccessFixtures
{ {

View File

@ -9,9 +9,9 @@ using Moq;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using System.Reflection; using System.Reflection;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.Helpers.Factories;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Bit.Core.Settings; using Bit.Core.Settings;
using Bit.Core.Test.Helpers.Factories;
namespace Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures namespace Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures
{ {

View File

@ -1,18 +1,12 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.EventFixtures namespace Bit.Core.Test.AutoFixture.EventFixtures
{ {

View File

@ -1,19 +1,13 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.FolderFixtures namespace Bit.Core.Test.AutoFixture.FolderFixtures
{ {

View File

@ -1,18 +1,12 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.GrantFixtures namespace Bit.Core.Test.AutoFixture.GrantFixtures
{ {

View File

@ -1,7 +1,5 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
@ -9,6 +7,8 @@ using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Fixtures = Bit.Core.Test.AutoFixture.OrganizationFixtures; using Fixtures = Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.AutoFixture.GroupFixtures namespace Bit.Core.Test.AutoFixture.GroupFixtures
{ {

View File

@ -1,17 +1,11 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.GroupUserFixtures namespace Bit.Core.Test.AutoFixture.GroupUserFixtures
{ {

View File

@ -1,17 +1,11 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.InstallationFixtures namespace Bit.Core.Test.AutoFixture.InstallationFixtures
{ {

View File

@ -7,13 +7,13 @@ using Bit.Core.Enums;
using Bit.Core.Models.Business; using Bit.Core.Models.Business;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using Bit.Core.Models; using Bit.Core.Models;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.AutoFixture.OrganizationFixtures namespace Bit.Core.Test.AutoFixture.OrganizationFixtures
{ {
@ -67,9 +67,9 @@ namespace Bit.Core.Test.AutoFixture.OrganizationFixtures
public PlanType CheckedPlanType { get; set; } public PlanType CheckedPlanType { get; set; }
public void Customize(IFixture fixture) public void Customize(IFixture fixture)
{ {
var validUpgradePlans = StaticStore.Plans.Where(p => p.Type != Enums.PlanType.Free && !p.Disabled).Select(p => p.Type).ToList(); var validUpgradePlans = StaticStore.Plans.Where(p => p.Type != PlanType.Free && !p.Disabled).Select(p => p.Type).ToList();
var lowestActivePaidPlan = validUpgradePlans.First(); var lowestActivePaidPlan = validUpgradePlans.First();
CheckedPlanType = CheckedPlanType.Equals(Enums.PlanType.Free) ? lowestActivePaidPlan : CheckedPlanType; CheckedPlanType = CheckedPlanType.Equals(PlanType.Free) ? lowestActivePaidPlan : CheckedPlanType;
validUpgradePlans.Remove(lowestActivePaidPlan); validUpgradePlans.Remove(lowestActivePaidPlan);
fixture.Customize<Core.Models.Table.Organization>(composer => composer fixture.Customize<Core.Models.Table.Organization>(composer => composer
.With(o => o.PlanType, CheckedPlanType)); .With(o => o.PlanType, CheckedPlanType));

View File

@ -1,9 +1,5 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models; using Bit.Core.Models;
using System.Collections.Generic; using System.Collections.Generic;
using Bit.Core.Enums; using Bit.Core.Enums;
@ -17,6 +13,8 @@ using System.Text.Json;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using AutoFixture.Xunit2; using AutoFixture.Xunit2;
using System.Reflection; using System.Reflection;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.OrganizationUserFixtures namespace Bit.Core.Test.AutoFixture.OrganizationUserFixtures
{ {

View File

@ -2,14 +2,14 @@
using System.Reflection; using System.Reflection;
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Enums; using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using AutoFixture.Xunit2; using AutoFixture.Xunit2;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.PolicyFixtures namespace Bit.Core.Test.AutoFixture.PolicyFixtures
{ {

View File

@ -3,12 +3,12 @@ using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.SendFixtures namespace Bit.Core.Test.AutoFixture.SendFixtures
{ {

View File

@ -1,16 +1,14 @@
using System; using System;
using AutoFixture; using AutoFixture;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using AutoMapper;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using System.Text.Json; using System.Text.Json;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.SsoConfigFixtures namespace Bit.Core.Test.AutoFixture.SsoConfigFixtures
{ {

View File

@ -1,12 +1,10 @@
using AutoFixture; using AutoFixture;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
namespace Bit.Core.Test.AutoFixture.SsoUserFixtures namespace Bit.Core.Test.AutoFixture.SsoUserFixtures

View File

@ -1,18 +1,12 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.TaxRateFixtures namespace Bit.Core.Test.AutoFixture.TaxRateFixtures
{ {

View File

@ -1,12 +1,6 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework; using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
@ -14,6 +8,8 @@ using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.TransactionFixtures namespace Bit.Core.Test.AutoFixture.TransactionFixtures
{ {

View File

@ -1,19 +1,13 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using AutoMapper;
using Bit.Core.Models.EntityFramework;
using Bit.Core.Models;
using System.Collections.Generic;
using Bit.Core.Enums;
using AutoFixture.Kernel; using AutoFixture.Kernel;
using System; using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Core.Test.AutoFixture.Relays; using Bit.Core.Test.AutoFixture.Relays;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.AutoFixture.U2fFixtures namespace Bit.Core.Test.AutoFixture.U2fFixtures
{ {

View File

@ -1,7 +1,5 @@
using AutoFixture; using AutoFixture;
using TableModel = Bit.Core.Models.Table; using TableModel = Bit.Core.Models.Table;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GlobalSettingsFixtures;
using Bit.Core.Models; using Bit.Core.Models;
using System.Collections.Generic; using System.Collections.Generic;
using Bit.Core.Enums; using Bit.Core.Enums;
@ -10,6 +8,8 @@ using System;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures; using Bit.Core.Test.AutoFixture.EntityFrameworkRepositoryFixtures;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.AutoFixture.UserFixtures namespace Bit.Core.Test.AutoFixture.UserFixtures
{ {

View File

@ -25,6 +25,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\src\Core\Core.csproj" /> <ProjectReference Include="..\..\src\Core\Core.csproj" />
<ProjectReference Include="..\..\src\Api\Api.csproj" /> <ProjectReference Include="..\..\src\Api\Api.csproj" />
<ProjectReference Include="..\common\Common.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Remove="Utilities\data\embeddedResource.txt" /> <None Remove="Utilities\data\embeddedResource.txt" />

View File

@ -1,22 +1,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using Bit.Core.Repositories.EntityFramework; using Bit.Core.Repositories.EntityFramework;
using Bit.Core.Settings; using Bit.Core.Settings;
using Bit.Test.Common.Helpers.Factories;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
namespace Bit.Core.Test.Helpers.Factories namespace Bit.Core.Test.Helpers.Factories
{ {
public static class GlobalSettingsFactory
{
public static GlobalSettings GlobalSettings { get; } = new GlobalSettings();
static GlobalSettingsFactory()
{
var configBuilder = new ConfigurationBuilder().AddUserSecrets<Bit.Api.Startup>();
var Configuration = configBuilder.Build();
ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), GlobalSettings);
}
}
public static class DatabaseOptionsFactory public static class DatabaseOptionsFactory
{ {
public static List<DbContextOptions<DatabaseContext>> Options { get; } = new List<DbContextOptions<DatabaseContext>>(); public static List<DbContextOptions<DatabaseContext>> Options { get; } = new List<DbContextOptions<DatabaseContext>>();

View File

@ -9,9 +9,9 @@ using Bit.Core.Models.Table;
using Core.Models.Data; using Core.Models.Data;
using Bit.Core.Test.AutoFixture.CipherFixtures; using Bit.Core.Test.AutoFixture.CipherFixtures;
using System.Collections.Generic; using System.Collections.Generic;
using Bit.Core.Test.AutoFixture;
using System.Linq; using System.Linq;
using Castle.Core.Internal; using Castle.Core.Internal;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.Services namespace Bit.Core.Test.Services
{ {

View File

@ -7,9 +7,9 @@ using Bit.Core.Models.Data;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.CollectionFixtures; using Bit.Core.Test.AutoFixture.CollectionFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Bit.Core.Enums;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
@ -23,7 +24,7 @@ namespace Bit.Core.Test.Services
{ {
Id = id, Id = id,
Name = "test device", Name = "test device",
Type = Enums.DeviceType.Android, Type = DeviceType.Android,
UserId = userId, UserId = userId,
PushToken = "testtoken", PushToken = "testtoken",
Identifier = "testid" Identifier = "testid"
@ -32,7 +33,7 @@ namespace Bit.Core.Test.Services
Assert.True(device.RevisionDate - DateTime.UtcNow < TimeSpan.FromSeconds(1)); Assert.True(device.RevisionDate - DateTime.UtcNow < TimeSpan.FromSeconds(1));
await pushRepo.Received().CreateOrUpdateRegistrationAsync("testtoken", id.ToString(), await pushRepo.Received().CreateOrUpdateRegistrationAsync("testtoken", id.ToString(),
userId.ToString(), "testid", Enums.DeviceType.Android); userId.ToString(), "testid", DeviceType.Android);
} }
} }
} }

View File

@ -10,6 +10,8 @@ using Bit.Core.Services;
using Bit.Core.Test.AutoFixture; using Bit.Core.Test.AutoFixture;
using Bit.Core.Test.AutoFixture.Attributes; using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.GroupFixtures; using Bit.Core.Test.AutoFixture.GroupFixtures;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;

View File

@ -4,8 +4,6 @@ using Bit.Core.Settings;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;
using System.IO; using System.IO;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Test.AutoFixture.CipherFixtures; using Bit.Core.Test.AutoFixture.CipherFixtures;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -13,6 +11,8 @@ using Bit.Core.Models.Table;
using U2F.Core.Utils; using U2F.Core.Utils;
using Bit.Core.Test.AutoFixture.CipherAttachmentMetaData; using Bit.Core.Test.AutoFixture.CipherAttachmentMetaData;
using AutoFixture; using AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.Services namespace Bit.Core.Test.Services
{ {

View File

@ -9,10 +9,8 @@ using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.OrganizationFixtures; using Bit.Core.Test.AutoFixture.OrganizationFixtures;
using System.Text.Json; using System.Text.Json;
using Bit.Core.Context; using Bit.Core.Context;
@ -22,7 +20,8 @@ using OrganizationUser = Bit.Core.Models.Table.OrganizationUser;
using Policy = Bit.Core.Models.Table.Policy; using Policy = Bit.Core.Models.Table.Policy;
using Bit.Core.Test.AutoFixture.PolicyFixtures; using Bit.Core.Test.AutoFixture.PolicyFixtures;
using Bit.Core.Settings; using Bit.Core.Settings;
using AutoFixture.Xunit2; using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
namespace Bit.Core.Test.Services namespace Bit.Core.Test.Services
{ {

View File

@ -5,19 +5,19 @@ using Bit.Core.Exceptions;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.OrganizationUserFixtures;
using PolicyFixtures = Bit.Core.Test.AutoFixture.PolicyFixtures; using PolicyFixtures = Bit.Core.Test.AutoFixture.PolicyFixtures;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;
using Bit.Core.Enums;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.Services namespace Bit.Core.Test.Services
{ {
public class PolicyServiceTests public class PolicyServiceTests
{ {
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_OrganizationDoesNotExist_ThrowsBadRequest([PolicyFixtures.Policy(Enums.PolicyType.DisableSend)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_OrganizationDoesNotExist_ThrowsBadRequest([PolicyFixtures.Policy(PolicyType.DisableSend)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
SetupOrg(sutProvider, policy.OrganizationId, null); SetupOrg(sutProvider, policy.OrganizationId, null);
@ -39,7 +39,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_OrganizationCannotUsePolicies_ThrowsBadRequest([PolicyFixtures.Policy(Enums.PolicyType.DisableSend)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_OrganizationCannotUsePolicies_ThrowsBadRequest([PolicyFixtures.Policy(PolicyType.DisableSend)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
var orgId = Guid.NewGuid(); var orgId = Guid.NewGuid();
@ -66,7 +66,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_SingleOrg_RequireSsoEnabled_ThrowsBadRequest([PolicyFixtures.Policy(Enums.PolicyType.SingleOrg)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_SingleOrg_RequireSsoEnabled_ThrowsBadRequest([PolicyFixtures.Policy(PolicyType.SingleOrg)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
policy.Enabled = false; policy.Enabled = false;
@ -77,7 +77,7 @@ namespace Bit.Core.Test.Services
}); });
sutProvider.GetDependency<IPolicyRepository>() sutProvider.GetDependency<IPolicyRepository>()
.GetByOrganizationIdTypeAsync(policy.OrganizationId, Enums.PolicyType.RequireSso) .GetByOrganizationIdTypeAsync(policy.OrganizationId, PolicyType.RequireSso)
.Returns(Task.FromResult(new Core.Models.Table.Policy { Enabled = true })); .Returns(Task.FromResult(new Core.Models.Table.Policy { Enabled = true }));
var badRequestException = await Assert.ThrowsAsync<BadRequestException>( var badRequestException = await Assert.ThrowsAsync<BadRequestException>(
@ -126,7 +126,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_RequireSsoPolicy_NotEnabled_ThrowsBadRequestAsync([PolicyFixtures.Policy(Enums.PolicyType.RequireSso)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_RequireSsoPolicy_NotEnabled_ThrowsBadRequestAsync([PolicyFixtures.Policy(PolicyType.RequireSso)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
policy.Enabled = true; policy.Enabled = true;
@ -137,7 +137,7 @@ namespace Bit.Core.Test.Services
}); });
sutProvider.GetDependency<IPolicyRepository>() sutProvider.GetDependency<IPolicyRepository>()
.GetByOrganizationIdTypeAsync(policy.OrganizationId, Enums.PolicyType.SingleOrg) .GetByOrganizationIdTypeAsync(policy.OrganizationId, PolicyType.SingleOrg)
.Returns(Task.FromResult(new Core.Models.Table.Policy { Enabled = false })); .Returns(Task.FromResult(new Core.Models.Table.Policy { Enabled = false }));
var badRequestException = await Assert.ThrowsAsync<BadRequestException>( var badRequestException = await Assert.ThrowsAsync<BadRequestException>(
@ -158,7 +158,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_NewPolicy_Created([PolicyFixtures.Policy(Enums.PolicyType.MasterPassword)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_NewPolicy_Created([PolicyFixtures.Policy(PolicyType.MasterPassword)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
policy.Id = default; policy.Id = default;
@ -173,7 +173,7 @@ namespace Bit.Core.Test.Services
await sutProvider.Sut.SaveAsync(policy, Substitute.For<IUserService>(), Substitute.For<IOrganizationService>(), Guid.NewGuid()); await sutProvider.Sut.SaveAsync(policy, Substitute.For<IUserService>(), Substitute.For<IOrganizationService>(), Guid.NewGuid());
await sutProvider.GetDependency<IEventService>().Received() await sutProvider.GetDependency<IEventService>().Received()
.LogPolicyEventAsync(policy, Enums.EventType.Policy_Updated); .LogPolicyEventAsync(policy, EventType.Policy_Updated);
await sutProvider.GetDependency<IPolicyRepository>().Received() await sutProvider.GetDependency<IPolicyRepository>().Received()
.UpsertAsync(policy); .UpsertAsync(policy);
@ -215,7 +215,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_ExistingPolicy_UpdateTwoFactor([PolicyFixtures.Policy(Enums.PolicyType.TwoFactorAuthentication)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_ExistingPolicy_UpdateTwoFactor([PolicyFixtures.Policy(PolicyType.TwoFactorAuthentication)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
// If the policy that this is updating isn't enabled then do some work now that the current one is enabled // If the policy that this is updating isn't enabled then do some work now that the current one is enabled
@ -233,15 +233,15 @@ namespace Bit.Core.Test.Services
.Returns(new Core.Models.Table.Policy .Returns(new Core.Models.Table.Policy
{ {
Id = policy.Id, Id = policy.Id,
Type = Enums.PolicyType.TwoFactorAuthentication, Type = PolicyType.TwoFactorAuthentication,
Enabled = false, Enabled = false,
}); });
var orgUserDetail = new Core.Models.Data.OrganizationUserUserDetails var orgUserDetail = new Core.Models.Data.OrganizationUserUserDetails
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
Status = Enums.OrganizationUserStatusType.Accepted, Status = OrganizationUserStatusType.Accepted,
Type = Enums.OrganizationUserType.User, Type = OrganizationUserType.User,
// Needs to be different from what is passed in as the savingUserId to Sut.SaveAsync // Needs to be different from what is passed in as the savingUserId to Sut.SaveAsync
Email = "test@bitwarden.com", Email = "test@bitwarden.com",
Name = "TEST", Name = "TEST",
@ -274,7 +274,7 @@ namespace Bit.Core.Test.Services
.SendOrganizationUserRemovedForPolicyTwoStepEmailAsync(org.Name, orgUserDetail.Email); .SendOrganizationUserRemovedForPolicyTwoStepEmailAsync(org.Name, orgUserDetail.Email);
await sutProvider.GetDependency<IEventService>().Received() await sutProvider.GetDependency<IEventService>().Received()
.LogPolicyEventAsync(policy, Enums.EventType.Policy_Updated); .LogPolicyEventAsync(policy, EventType.Policy_Updated);
await sutProvider.GetDependency<IPolicyRepository>().Received() await sutProvider.GetDependency<IPolicyRepository>().Received()
.UpsertAsync(policy); .UpsertAsync(policy);
@ -284,7 +284,7 @@ namespace Bit.Core.Test.Services
} }
[Theory, CustomAutoData(typeof(SutProviderCustomization))] [Theory, CustomAutoData(typeof(SutProviderCustomization))]
public async Task SaveAsync_ExistingPolicy_UpdateSingleOrg([PolicyFixtures.Policy(Enums.PolicyType.TwoFactorAuthentication)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider) public async Task SaveAsync_ExistingPolicy_UpdateSingleOrg([PolicyFixtures.Policy(PolicyType.TwoFactorAuthentication)] Core.Models.Table.Policy policy, SutProvider<PolicyService> sutProvider)
{ {
// If the policy that this is updating isn't enabled then do some work now that the current one is enabled // If the policy that this is updating isn't enabled then do some work now that the current one is enabled
@ -302,15 +302,15 @@ namespace Bit.Core.Test.Services
.Returns(new Core.Models.Table.Policy .Returns(new Core.Models.Table.Policy
{ {
Id = policy.Id, Id = policy.Id,
Type = Enums.PolicyType.SingleOrg, Type = PolicyType.SingleOrg,
Enabled = false, Enabled = false,
}); });
var orgUserDetail = new Core.Models.Data.OrganizationUserUserDetails var orgUserDetail = new Core.Models.Data.OrganizationUserUserDetails
{ {
Id = Guid.NewGuid(), Id = Guid.NewGuid(),
Status = Enums.OrganizationUserStatusType.Accepted, Status = OrganizationUserStatusType.Accepted,
Type = Enums.OrganizationUserType.User, Type = OrganizationUserType.User,
// Needs to be different from what is passed in as the savingUserId to Sut.SaveAsync // Needs to be different from what is passed in as the savingUserId to Sut.SaveAsync
Email = "test@bitwarden.com", Email = "test@bitwarden.com",
Name = "TEST", Name = "TEST",
@ -337,7 +337,7 @@ namespace Bit.Core.Test.Services
await sutProvider.Sut.SaveAsync(policy, userService, organizationService, savingUserId); await sutProvider.Sut.SaveAsync(policy, userService, organizationService, savingUserId);
await sutProvider.GetDependency<IEventService>().Received() await sutProvider.GetDependency<IEventService>().Received()
.LogPolicyEventAsync(policy, Enums.EventType.Policy_Updated); .LogPolicyEventAsync(policy, EventType.Policy_Updated);
await sutProvider.GetDependency<IPolicyRepository>().Received() await sutProvider.GetDependency<IPolicyRepository>().Received()
.UpsertAsync(policy); .UpsertAsync(policy);

View File

@ -1,21 +1,19 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.Json;
using System.Linq;
using Bit.Core.Context;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Test.AutoFixture.SendFixtures; using Bit.Core.Test.AutoFixture.SendFixtures;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;
using System.Text.Json;
using Bit.Test.Common.AutoFixture;
using System.IO;
using System.Text;
namespace Bit.Core.Test.Services namespace Bit.Core.Test.Services
{ {

View File

@ -3,8 +3,8 @@ using System.Threading.Tasks;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using Bit.Core.Services; using Bit.Core.Services;
using Bit.Core.Test.AutoFixture; using Bit.Test.Common.AutoFixture;
using Bit.Core.Test.AutoFixture.Attributes; using Bit.Test.Common.AutoFixture.Attributes;
using NSubstitute; using NSubstitute;
using Xunit; using Xunit;

View File

@ -3,15 +3,15 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using Xunit; using Xunit;
using Bit.Core.Test.AutoFixture.Attributes;
using Bit.Core.Test.AutoFixture.UserFixtures; using Bit.Core.Test.AutoFixture.UserFixtures;
using IdentityModel; using IdentityModel;
using Bit.Core.Enums.Provider; using Bit.Core.Enums.Provider;
using Bit.Core.Models.Table; using Bit.Core.Models.Table;
using Bit.Core.Context; using Bit.Core.Context;
using AutoFixture; using AutoFixture;
using Bit.Core.Test.AutoFixture;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Test.Common.AutoFixture.Attributes;
using Bit.Test.Common.AutoFixture;
namespace Bit.Core.Test.Utilities namespace Bit.Core.Test.Utilities
{ {

View File

@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Icons.Test", "Icons.Test\Ic
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Api.Test", "Api.Test\Api.Test.csproj", "{2B29139A-E3B5-4A44-8A85-1593ACB797CC}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Api.Test", "Api.Test\Api.Test.csproj", "{2B29139A-E3B5-4A44-8A85-1593ACB797CC}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{E94B2922-EE05-435C-9472-FDEFEAD0AA37}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -58,5 +60,17 @@ Global
{2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x64.Build.0 = Release|Any CPU {2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x64.Build.0 = Release|Any CPU
{2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x86.ActiveCfg = Release|Any CPU {2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x86.ActiveCfg = Release|Any CPU
{2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x86.Build.0 = Release|Any CPU {2B29139A-E3B5-4A44-8A85-1593ACB797CC}.Release|x86.Build.0 = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|x64.ActiveCfg = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|x64.Build.0 = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|x86.ActiveCfg = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Debug|x86.Build.0 = Debug|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|Any CPU.Build.0 = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|x64.ActiveCfg = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|x64.Build.0 = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|x86.ActiveCfg = Release|Any CPU
{E94B2922-EE05-435C-9472-FDEFEAD0AA37}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal