Skip to content

Instantly share code, notes, and snippets.

namespace ContactList.Features.Contact
{
using System;
using AutoMapper;
using ContactLists.Core;
using Core.Domain;
using FluentValidation;
using MediatR;
public class ContactEdit
using System.Linq;
using ContactList.Core.Domain;
using ContactList.Tests;
using static Testing;
public class EntityTests
{
[AllEntities]
public void ShouldPersist<TEntity>(TEntity entity) where TEntity : Entity
{
public static class Testing
{
private static IContainer Container => TestDependencyScope.CurrentNestedContainer;
public static T Resolve<T>()
{
return Container.GetInstance<T>();
}
public static object Resolve(Type type)
public class AutoFixtureParameterSource : ParameterSource
{
public IEnumerable<object[]> GetParameters(MethodInfo method)
{
// Produces a randomly-populated object for each
// parameter declared on the test method, using
// a Fixture that has our customizations.
var fixture = new Fixture();
public class NestedContainerPerCase : CaseBehavior
{
public void Execute(Case context, Action next)
{
TestDependencyScope.Begin();
next();
TestDependencyScope.End();
}
}
public static class IoC
{
private static readonly Lazy<IContainer> Bootstrapper = new Lazy<IContainer>(Initialize, true);
public static IContainer Container => Bootstrapper.Value;
private static IContainer Initialize()
{
return new Container(cfg =>
{
public class ResetDatabase : CaseBehavior
{
public void Execute(Case context, Action next)
{
var checkpoint = new Checkpoint
{
SchemasToExclude = new[] { "RoundhousE" },
TablesToIgnore = new[] { "sysdiagrams" }
};
public class InitializeAutoMapper : ClassBehavior
{
public void Execute(Class context, Action next)
{
AutoMapperBootstrapper.Initialize();
next();
}
}
public class AutoMapperBootstrapper
{
private static readonly Lazy<AutoMapperBootstrapper> Bootstrapper = new Lazy<AutoMapperBootstrapper>(InternalInitialize);
public static void Initialize()
{
var bootstrapper = Bootstrapper.Value;
}
private AutoMapperBootstrapper()
public class TestingConvention : Convention
{
public TestingConvention()
{
Classes
.NameEndsWith("Tests");
Methods
.Where(method => method.IsVoid() || method.IsAsync());