public void Ctor_When_Called_Sets_The_Factory_Method()
        {
            //Arrange
            LogModelFunc <PublicationAddress> factoryMethod = d => null;

            //Act
            FactoryMethodPublicationAddressProvider factoryMethodPublicationAddressProvider = new FactoryMethodPublicationAddressProvider(factoryMethod);

            //Assert
            Assert.AreEqual(factoryMethod, factoryMethodPublicationAddressProvider.FactoryMethod);
        }
        public void Ctor_Taking_Factory_Method_When_Called_Sets_Factory_Method()
        {
            // Arrange
            LogModelFunc <DbContext> factoryMethod = d => null;

            // Act
            FactoryMethodDbContextProvider factoryMethodDbContextProvider = new FactoryMethodDbContextProvider(factoryMethod);

            // Assert
            Assert.AreEqual(factoryMethod, factoryMethodDbContextProvider.FactoryMethod);
        }
        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 WithAddress_Taking_Factory_Method_When_Called_Calls_WithAddress_Method_Passing_New_Created_FactoryMethodPublicationAddressProvider_To_It()
        {
            // Arrange
            var rabbitMqDestinationBuilderMock = new Mock <IRabbitMqDestinationBuilder>();
            LogModelFunc <PublicationAddress> factoryMethod = d => null;

            // Act
            IRabbitMqDestinationBuilderExtensions.WithAddress(rabbitMqDestinationBuilderMock.Object, factoryMethod);

            // Assert
            rabbitMqDestinationBuilderMock.Verify(x => x.WithAddress(It.Is <FactoryMethodPublicationAddressProvider>(p => p.FactoryMethod == factoryMethod)), Times.Once);
        }
        public void GetDbContext_Taking_LogModel_When_Called_Returns_Result_From_Factory_Method()
        {
            // Arrange
            DbContext contextReturnedFromFactoryMethod   = new Mock <DbContext>().Object;
            LogModelFunc <DbContext>       factoryMethod = d => contextReturnedFromFactoryMethod;
            FactoryMethodDbContextProvider factoryMethodDbContextProvider = new FactoryMethodDbContextProvider(factoryMethod);

            // Act
            var contextFromMethod = factoryMethodDbContextProvider.GetDbContext(new LogModel());

            // Assert
            Assert.AreEqual(contextReturnedFromFactoryMethod, contextFromMethod);
        }
        public void GetPublicationAddress_When_Called_Returns_Address_Using_Factory_Method()
        {
            //Arrange
            PublicationAddress publicationAddress = new PublicationAddress("fanout", "name", "rkey");
            LogModelFunc <PublicationAddress>       factoryMethod = d => publicationAddress;
            FactoryMethodPublicationAddressProvider factoryMethodPublicationAddressProvider = new FactoryMethodPublicationAddressProvider(factoryMethod);

            //Act
            var publicationAddressReturned = factoryMethodPublicationAddressProvider.GetPublicationAddress(new LogModel());

            //Assert
            Assert.AreEqual(publicationAddress, publicationAddressReturned);
        }
        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 WithDbEntity_Taking_FactoryMethod_When_Called_Calls_WithDbEntity_Method_Of_The_Builder()
        {
            // Arrange
            var entityFrameworkDestinationBuilder = new Mock <IEntityFrameworkDestinationBuilder>();

            entityFrameworkDestinationBuilder.Setup(x => x.WithDbEntity(It.IsAny <IDbEntityBuilder>())).Returns(entityFrameworkDestinationBuilder.Object);
            LogModelFunc <Object> factoryMethod = d => null;

            // Act
            var returned = IEntityFrameworkDestinationBuilderExtensions.WithDbEntity(entityFrameworkDestinationBuilder.Object, factoryMethod);

            // Assert
            entityFrameworkDestinationBuilder.Verify(x => x.WithDbEntity(It.Is <FactoryMethodDbEntityBuilder>(c => c.FactoryMethod == factoryMethod)), Times.Once);
            Assert.AreEqual(entityFrameworkDestinationBuilder.Object, returned);
        }
Esempio n. 9
0
 public void Adding_Entity_Framework_Destination_With_DbContext_Function()
 {
     LogModelFunc <DbContext> dbContextFunction = (logModel) =>
     {
         if (logModel.HasTag("App1"))
         {
             return(dbContext1);
         }
         else
         {
             return(dbContext2);
         }
     };
     var logger = LoggerBuilder.Logger()
                  .ForAllLogs()
                  .EntityFramework()
                  .WithDbContext(dbContextFunction)
                  .Add()
                  .BuildLogger();
 }
Esempio n. 10
0
 public void Adding_RabbitMq_With_Publication_Address_Function()
 {
     LogModelFunc <PublicationAddress> publicationAddressFunc = (logModel) =>
     {
         if (logModel.LogTypeIsIn(LogType.Error, LogType.Failure, LogType.Critical))
         {
             return(new PublicationAddress("direct", "ErrorLogs", ""));
         }
         else
         {
             return(new PublicationAddress("direct", "InfoLogs", ""));
         }
     };
     var logger = LoggerBuilder.Logger()
                  .ForAllLogs()
                  .RabbitMq()
                  .WithConnection(connection)
                  .WithAddress(publicationAddressFunc)
                  .Add()
                  .BuildLogger();
 }
Esempio n. 11
0
        public void Adding_Entity_Framework_Destination_With_DbEntity_Factory_Method()
        {
            LogModelFunc <Object> dbEntityFactoryMethod = (logModel) =>
            {
                return(new MyCustomDbEntity()
                {
                    LogId = logModel.LogId,
                    Context = logModel.Context,
                    Description = logModel.Description,
                    LogType = logModel.LogType,
                    LogDate = logModel.LogDate
                });
            };

            var logger = LoggerBuilder.Logger()
                         .ForAllLogs()
                         .EntityFramework()
                         .WithDbContext(dbContext)
                         .WithDbEntity(dbEntityFactoryMethod)
                         .Add()
                         .BuildLogger();
        }
Esempio n. 12
0
 public FactoryMethodDbContextProvider(LogModelFunc <DbContext> factoryMethod)
 {
     _factoryMethod = factoryMethod ?? throw new ArgumentNullException("factoryMethod");
 }
 public static IEntityFrameworkDestinationBuilder WithDbEntity(this IEntityFrameworkDestinationBuilder self, LogModelFunc <Object> factoryMethod)
 {
     return(self.WithDbEntity(new FactoryMethodDbEntityBuilder(factoryMethod)));
 }
Esempio n. 14
0
 /// <summary>
 /// Adds the publication address provider of type <c>TacitusLogger.Destinations.RabbitMq.FactoryMethodPublicationAddressProvider</c> with the
 /// specified factory method of type <c>TacitusLogger.LogModelFunc<PublicationAddress></c>.
 /// </summary>
 /// <param name="factoryMethod">The factory method.</param>
 /// <returns>Self.</returns>
 public static IRabbitMqDestinationBuilder WithAddress(this IRabbitMqDestinationBuilder self, LogModelFunc <PublicationAddress> factoryMethod)
 {
     return(self.WithAddress(new FactoryMethodPublicationAddressProvider(factoryMethod)));
 }
Esempio n. 15
0
 public FactoryMethodDbEntityBuilder(LogModelFunc <Object> factoryMethod)
 {
     _factoryMethod = factoryMethod ?? throw new ArgumentNullException("factoryMethod");
 }
Esempio n. 16
0
 /// <summary>
 /// Creates an instance of <c>TacitusLogger.Destinations.RabbitMq.PublicationAddressProviders.FactoryMethodPublicationAddressProvider</c>
 /// using the factory method of type <c>TacitusLogger.LogModelFunc<PublicationAddress></c>.
 /// </summary>
 /// <param name="factoryMethod">The factory method.</param>
 public FactoryMethodPublicationAddressProvider(LogModelFunc <PublicationAddress> factoryMethod)
 {
     _factoryMethod = factoryMethod ?? throw new ArgumentNullException("factoryMethod");
 }
 public static IEntityFrameworkDestinationBuilder WithDbContext(this IEntityFrameworkDestinationBuilder self, LogModelFunc <DbContext> factoryMethod)
 {
     return(self.WithDbContext(new FactoryMethodDbContextProvider(factoryMethod)));
 }