コード例 #1
0
        public async Task WhenAddingLogWithValidApplicationThenUnitOfWorkIsCommitted()
        {
            // Arrange
            ILogRepository fakeLogRepository = A.Fake <ILogRepository>();

            ApplicationEntity application = new ApplicationEntity()
            {
                DisplayName = "TestApplicationDisplayName"
            };

            IApplicationRepository fakeApplicationRepository = A.Fake <IApplicationRepository>();

            A.CallTo(() => fakeApplicationRepository.TryGetByIdAsync(1)).Returns(Task.FromResult(application));

            IUnitOfWork fakeUnitOfWork = A.Fake <IUnitOfWork>();

            LogCreateDto logCreateDto = new LogCreateDto()
            {
                ApplicationId = 1,
                Logger        = "TestLogger",
                Level         = "TestLevel",
                Message       = "TestMessage"
            };

            ILogService logService = new LogService(fakeLogRepository, fakeApplicationRepository, fakeUnitOfWork);

            // Act
            await logService.AddLogAsync(logCreateDto, "TestApplicationDisplayName");

            // Assert
            A.CallTo(() => fakeUnitOfWork.CommitAsync()).MustHaveHappened();
        }
コード例 #2
0
        public void WhenAddingLogWithAbsentApplicationThenExceptionIsThrown()
        {
            // Arrange
            ILogRepository fakeLogRepository = A.Fake <ILogRepository>();

            IApplicationRepository fakeApplicationRepository = A.Fake <IApplicationRepository>();

            A.CallTo(() => fakeApplicationRepository.TryGetByIdAsync(A <int> .Ignored)).Returns(Task.FromResult <ApplicationEntity>(null));

            IUnitOfWork fakeUnitOfWork = A.Fake <IUnitOfWork>();

            LogCreateDto logCreateDto = new LogCreateDto()
            {
                ApplicationId = 1,
                Logger        = "TestLogger",
                Level         = "TestLevel",
                Message       = "TestMessage"
            };

            ILogService logService = new LogService(fakeLogRepository, fakeApplicationRepository, fakeUnitOfWork);

            // Act
            ArgumentException ex = Assert.CatchAsync <ArgumentException>(async() => await logService.AddLogAsync(logCreateDto, "TestApplicationDisplayName"));

            // Assert
            StringAssert.Contains("Application with id 1 not found.", ex.Message);
        }
コード例 #3
0
        public void WhenAddingLogWithWrongApplicationDisplayNameThenExceptionIsThrown()
        {
            // Arrange
            ILogRepository fakeLogRepository = A.Fake <ILogRepository>();

            ApplicationEntity application = new ApplicationEntity()
            {
                DisplayName = "TestApplicationDisplayName"
            };

            IApplicationRepository fakeApplicationRepository = A.Fake <IApplicationRepository>();

            A.CallTo(() => fakeApplicationRepository.TryGetByIdAsync(1)).Returns(Task.FromResult(application));

            IUnitOfWork fakeUnitOfWork = A.Fake <IUnitOfWork>();

            LogCreateDto logCreateDto = new LogCreateDto()
            {
                ApplicationId = 1,
                Logger        = "TestLogger",
                Level         = "TestLevel",
                Message       = "TestMessage"
            };

            ILogService logService = new LogService(fakeLogRepository, fakeApplicationRepository, fakeUnitOfWork);

            // Act
            ArgumentException ex = Assert.CatchAsync <ArgumentException>(async() => await logService.AddLogAsync(logCreateDto, "WrongTestApplicationDisplayName"));

            // Assert
            StringAssert.Contains("Application display name mismatch.", ex.Message);
        }