mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 07:36:14 -05:00
[EC-307] Fresh desk custom fields integration (#2114)
* Using correct ILogger on FreshdeskController * Submitting custom fields to Freshdesk * Set up FreshdeskController to use IHttpClientFactory * Added unit test for FreshdeskController * Moved ControllerCustomizeAttribute and ControllerCustomization to Common * Modified FreshdeskController to use FreshdeskWebhookModel; Edited unit tests to use AutoFixture
This commit is contained in:
33
test/Common/AutoFixture/ControllerCustomization.cs
Normal file
33
test/Common/AutoFixture/ControllerCustomization.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using AutoFixture;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Org.BouncyCastle.Security;
|
||||
|
||||
namespace Bit.Test.Common.AutoFixture
|
||||
{
|
||||
/// <summary>
|
||||
/// Disables setting of Auto Properties on the Controller to avoid ASP.net initialization errors. Still sets constructor dependencies.
|
||||
/// </summary>
|
||||
/// <param name="fixture"></param>
|
||||
public class ControllerCustomization : ICustomization
|
||||
{
|
||||
private readonly Type _controllerType;
|
||||
public ControllerCustomization(Type controllerType)
|
||||
{
|
||||
if (!controllerType.IsAssignableTo(typeof(Controller)))
|
||||
{
|
||||
throw new InvalidParameterException($"{nameof(controllerType)} must derive from {typeof(Controller).Name}");
|
||||
}
|
||||
|
||||
_controllerType = controllerType;
|
||||
}
|
||||
|
||||
public void Customize(IFixture fixture)
|
||||
{
|
||||
fixture.Customizations.Add(new BuilderWithoutAutoProperties(_controllerType));
|
||||
}
|
||||
}
|
||||
public class ControllerCustomization<T> : ICustomization where T : Controller
|
||||
{
|
||||
public void Customize(IFixture fixture) => new ControllerCustomization(typeof(T)).Customize(fixture);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user