public void HandlerType_Does_Not_Implement_ITypeHandler_Does_Nothing()
    {
        // Arrange
        var handlerType    = typeof(InvalidHandlerWithGenericParameter <>);
        var addTypeHandler = Substitute.For <IDbTypeMapper.AddGenericTypeHandler>();
        var mapper         = new DbTypeMapper();

        // Act
        mapper.AddGenericTypeHandlers <string>(handlerType, addTypeHandler);

        // Assert
        addTypeHandler.DidNotReceive().Invoke(Arg.Any <Type>(), Arg.Any <SqlMapper.ITypeHandler>());
    }
    public void Calls_AddTypeHandler_For_Each_Implementing_Property_Type()
    {
        // Arrange
        var handlerType    = typeof(Handler <>);
        var addTypeHandler = Substitute.For <IDbTypeMapper.AddGenericTypeHandler>();
        var mapper         = new DbTypeMapper();

        // Act
        mapper.AddGenericTypeHandlers <CustomBaseType>(handlerType, addTypeHandler);

        // Assert
        addTypeHandler.Received().Invoke(typeof(CustomType0), Arg.Any <SqlMapper.ITypeHandler>());
        addTypeHandler.Received().Invoke(typeof(CustomType1), Arg.Any <SqlMapper.ITypeHandler>());
    }