public void Ctor_Taking_Factory_Method_When_Called_With_Null_Factory_Method_Throws_ArgumentNullException()
 {
     Assert.Catch <ArgumentNullException>(() =>
     {
         // Act
         FactoryMethodDbEntityBuilder factoryMethodDbEntityBuilder = new FactoryMethodDbEntityBuilder(null as LogModelFunc <Object>);
     });
 }
        public void Ctor_Taking_Factory_Method_When_Called_Sets_Factory_Method()
        {
            // Arrange
            LogModelFunc <Object> factoryMethod = d => null;

            // Act
            FactoryMethodDbEntityBuilder factoryMethodDbEntityBuilder = new FactoryMethodDbEntityBuilder(factoryMethod);

            // Assert
            Assert.AreEqual(factoryMethod, factoryMethodDbEntityBuilder.FactoryMethod);
        }
        public void BuildDbEntity_When_Called_Returns_Result_Of_Factory_Method()
        {
            // Arrange
            Object resultFromFactoryMethod             = new Object();
            LogModelFunc <Object>        factoryMethod = d => resultFromFactoryMethod;
            FactoryMethodDbEntityBuilder factoryMethodDbEntityBuilder = new FactoryMethodDbEntityBuilder(factoryMethod);

            // Act
            var resultFromMethod = factoryMethodDbEntityBuilder.BuildDbEntity(new LogModel());

            // Assert
            Assert.AreEqual(resultFromFactoryMethod, resultFromMethod);
        }
        public void Adding_Entity_Framework_Destination_With_DbEntity_Factory_Method()
        {
            IDbContextProvider dbContextProvider            = new DbContextProvider(dbContext);
            IDbEntityBuilder   factoryMethodDbEntityBuilder = new FactoryMethodDbEntityBuilder((logModel) =>
            {
                return(new MyCustomDbEntity()
                {
                    LogId = logModel.LogId,
                    Context = logModel.Context,
                    Description = logModel.Description,
                    LogType = logModel.LogType,
                    LogDate = logModel.LogDate
                });
            });
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(dbContextProvider, factoryMethodDbEntityBuilder);

            Logger logger = new Logger();

            logger.AddLogDestinations(entityFrameworkDestination);
        }