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); }
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(); }
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(); }
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(); }
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))); }
/// <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))); }
public FactoryMethodDbEntityBuilder(LogModelFunc <Object> factoryMethod) { _factoryMethod = factoryMethod ?? throw new ArgumentNullException("factoryMethod"); }
/// <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))); }