Exemplo n.º 1
0
        public void Send_Taking_Several_Logs_Saves_Log_In_Db_Context()
        {
            var options = new DbContextOptionsBuilder <LogModelContext>()
                          .UseInMemoryDatabase(databaseName: "Test2")
                          .Options;
            var logDataContext = new LogModelContext(options);
            IDbContextProvider         dbContextProvider          = new DbContextProvider(logDataContext);
            IDbEntityBuilder           dbEntityBuilder            = new LogDbModelEntityBuilder();
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(dbContextProvider, dbEntityBuilder);
            LogModel logData1 = Samples.LogModels.WithTagsAndItems(LogType.Warning);

            logData1.LogId = "LogId1";
            LogModel logData2 = Samples.LogModels.WithTagsAndItems(LogType.Error);

            logData2.LogId = "LogId2";
            LogModel logData3 = Samples.LogModels.WithTagsAndItems(LogType.Info);

            logData3.LogId = "LogId3";

            // Act
            entityFrameworkDestination.Send(new LogModel[] { logData1, logData2, logData3 });

            // Assert
            List <LogDbModel> logs = logDataContext.Logs.ToList();

            Assert.AreEqual(3, logs.Count);
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel(logs[0], logData1);
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel(logs[1], logData2);
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel(logs[2], logData3);
        }
Exemplo n.º 2
0
        public void Ctor_Default_When_Called_Sets_Default_JsonSerializerSettings()
        {
            // Act
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();

            // Assert
            Assert.AreEqual(LogDbModelEntityBuilder.DefaultJsonSerializerSettings, logDbModelEntityBuilder.JsonSerializerSettings);
        }
Exemplo n.º 3
0
 public void Ctor_Taking_JsonSerializerSettings_When_Called_With_Null_JsonSerializerSettings()
 {
     Assert.Catch <ArgumentNullException>(() =>
     {
         // Act
         LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder(null as JsonSerializerSettings);
     });
 }
        public void Adding_Entity_Framework_Destination_With_Custom_DbContext_Provider()
        {
            IDbContextProvider         customDbContextProvider    = new Mock <IDbContextProvider>().Object;
            IDbEntityBuilder           dbEntityBuilder            = new LogDbModelEntityBuilder();
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(customDbContextProvider, dbEntityBuilder);

            Logger logger = new Logger();

            logger.AddLogDestinations(entityFrameworkDestination);
        }
        public void Adding_Entity_Framework_Destination_With_Minimal_Configuration()
        {
            IDbContextProvider         dbContextProvider          = new DbContextProvider(dbContext);
            IDbEntityBuilder           dbEntityBuilder            = new LogDbModelEntityBuilder();
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(dbContextProvider, dbEntityBuilder);

            Logger logger = new Logger();

            logger.AddLogDestinations(entityFrameworkDestination);
        }
Exemplo n.º 6
0
        public void Ctor_Taking_JsonSerializerSettings_When_Called_Sets_JsonSerializerSettings()
        {
            // Arrange
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();

            // Act
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder(jsonSerializerSettings);

            // Assert
            Assert.AreEqual(jsonSerializerSettings, logDbModelEntityBuilder.JsonSerializerSettings);
        }
Exemplo n.º 7
0
        public void ResetJsonSerializerFacade_When_Called_Replaces_JsonSerializerFacade()
        {
            // Arrange
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();
            var jsonSerializerFacade = new Mock <IJsonSerializerFacade>().Object;

            // Act
            logDbModelEntityBuilder.ResetJsonSerializerFacade(jsonSerializerFacade);

            // Assert
            Assert.AreEqual(jsonSerializerFacade, logDbModelEntityBuilder.JsonSerializerFacade);
        }
Exemplo n.º 8
0
        public void BuildDbEntity_When_Called_Creates_And_Returns_LogDbModel()
        {
            // Arrange
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();
            LogModel logData = Samples.LogModels.WithTagsAndItems();

            // Act
            Object logDbModel = logDbModelEntityBuilder.BuildDbEntity(logData);

            // Assert
            Assert.IsInstanceOf <LogDbModel>(logDbModel);
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel((LogDbModel)logDbModel, logData);
        }
Exemplo n.º 9
0
        public void BuildDbEntity_When_Called_Given_That_Tags_And_LogItems_Are_Null()
        {
            // Arrange
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();
            LogModel logData = Samples.LogModels.Standard();

            logData.Tags     = null;
            logData.LogItems = null;

            // Act
            Object dbModelObj = logDbModelEntityBuilder.BuildDbEntity(logData);

            // Assert
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel((LogDbModel)dbModelObj, logData);
        }
Exemplo n.º 10
0
        public void ResetJsonSerializerFacade_When_Called_With_Null_JsonSerializerFacade_Throws_ArgumentNullException()
        {
            // Arrange
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();
            var jsonSerializerFacade = new Mock <IJsonSerializerFacade>().Object;

            // Assert
            var ex = Assert.Catch <ArgumentNullException>(() =>
            {
                // Act
                logDbModelEntityBuilder.ResetJsonSerializerFacade(null as IJsonSerializerFacade);
            });

            Assert.AreEqual("jsonSerializerFacade", ex.ParamName);
        }
Exemplo n.º 11
0
        public void BuildDbEntity_When_Called_Given_That_Log_Item_Contains_Self_Reference_Loop()
        {
            // Arrange
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder();
            LogModel logData = Samples.LogModels.WithTagsAndItems();

            // Object containing self reference loop.
            logData.LogItems[0].Value = new ClassWithCircularReference();

            // Act
            LogDbModel logDbModel = (LogDbModel)logDbModelEntityBuilder.BuildDbEntity(logData);

            // Assert
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings()
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            };

            Assert.AreEqual(JsonConvert.SerializeObject(logData.LogItems, jsonSerializerSettings), logDbModel.LogItemsJson);
        }
Exemplo n.º 12
0
        public void Send_Taking_One_Log_Saves_Log_In_Db_Context()
        {
            var options = new DbContextOptionsBuilder <LogModelContext>()
                          .UseInMemoryDatabase(databaseName: "Test1")
                          .Options;
            var logDataContext = new LogModelContext(options);
            IDbContextProvider         dbContextProvider          = new DbContextProvider(logDataContext);
            IDbEntityBuilder           dbEntityBuilder            = new LogDbModelEntityBuilder();
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(dbContextProvider, dbEntityBuilder);
            LogModel logData = Samples.LogModels.WithTagsAndItems();

            // Act
            entityFrameworkDestination.Send(new LogModel[] { logData });

            // Assert
            List <LogDbModel> logs = logDataContext.Logs.ToList();

            Assert.AreEqual(1, logs.Count);
            LogDbModelAsserts.AssertLogModelModelIsEqualToLogModel(logs[0], logData);
        }
        public void Adding_Entity_Framework_Destination_With_DbContext_Function()
        {
            IDbContextProvider factoryMethodDbContextProvider = new FactoryMethodDbContextProvider((logModel) =>
            {
                if (logModel.HasTag("App1"))
                {
                    return(dbContext1);
                }
                else
                {
                    return(dbContext2);
                }
            });
            IDbEntityBuilder           dbEntityBuilder            = new LogDbModelEntityBuilder();
            EntityFrameworkDestination entityFrameworkDestination = new EntityFrameworkDestination(factoryMethodDbContextProvider, dbEntityBuilder);

            Logger logger = new Logger();

            logger.AddLogDestinations(entityFrameworkDestination);
        }
Exemplo n.º 14
0
        public void BuildDbEntity_When_Called_Serializes_Log_Items_And_Tags_Using_JsonSerializerFacade()
        {
            // Arrange
            LogModel logData = Samples.LogModels.WithTagsAndItems();
            var      jsonSerializerFacadeMock = new Mock <IJsonSerializerFacade>();

            jsonSerializerFacadeMock.Setup(x => x.Serialize(It.IsAny <string[]>(), It.IsAny <JsonSerializerSettings>())).Returns("serialized tags");
            jsonSerializerFacadeMock.Setup(x => x.Serialize(It.IsAny <LogItem[]>(), It.IsAny <JsonSerializerSettings>())).Returns("serialized log items");
            var jsonSerializerSettings = new JsonSerializerSettings();
            LogDbModelEntityBuilder logDbModelEntityBuilder = new LogDbModelEntityBuilder(jsonSerializerSettings);

            logDbModelEntityBuilder.ResetJsonSerializerFacade(jsonSerializerFacadeMock.Object);

            // Act
            LogDbModel logDbModel = (LogDbModel)logDbModelEntityBuilder.BuildDbEntity(logData);

            // Assert
            jsonSerializerFacadeMock.Verify(x => x.Serialize(logData.Tags, jsonSerializerSettings), Times.Once);
            jsonSerializerFacadeMock.Verify(x => x.Serialize(logData.LogItems, jsonSerializerSettings), Times.Once);
            Assert.AreEqual("serialized tags", logDbModel.TagsJson);
            Assert.AreEqual("serialized log items", logDbModel.LogItemsJson);
        }