public void PeriodicTasks_YoutubeDown_DecoratorReportsErrors() { var errorableDownloadFactory = Substitute.For <IErrorableFactory <string, string, string, string> >(); errorableDownloadFactory.Create(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(""); var sender = new TestableSerializer(); var testableLogger = new TestableLogger(); var container = new TestContainerManager(c => { var senderRegistration = Lifestyle.Singleton.CreateRegistration(() => sender, c); c.RegisterConditional(typeof(IFactory <IEnumerable <ISendable <ITransmittable> >, IEnumerable <string> >), senderRegistration, _ => true); var errorableDownloadFactoryRegistration = Lifestyle.Singleton.CreateRegistration(() => errorableDownloadFactory, c); c.RegisterConditional(typeof(IErrorableFactory <string, string, string, string>), errorableDownloadFactoryRegistration, _ => true); var loggerRegistration = Lifestyle.Singleton.CreateRegistration(() => testableLogger, c); c.RegisterConditional(typeof(ILogger), loggerRegistration, pc => !pc.Handled); }, settings => settings.PeriodicMessageInterval = TimeSpan.FromMilliseconds(100)) .InitializeAndIsolateRepository(); var periodicTaskRunner = container.GetInstance <PeriodicTaskRunner>(); periodicTaskRunner.Run(); Task.Delay(900).Wait(); Console.WriteLine(ObjectDumper.Dump(testableLogger.Outbox)); Assert.IsTrue(testableLogger.Outbox.Any(x => x.Contains("Error occured in GenericClassFactoryTryCatchDecorator"))); Assert.IsTrue(testableLogger.Outbox.Any(x => x.Contains("input1 is \"https://www.youtube.com/feeds/videos.xml?user=destiny\""))); }
public void BeginScope_ReturnsAWorkingDisposable() { var subject = new TestableLogger(); var scope = subject.BeginScope(""); Assert.That(scope.Dispose, Throws.Nothing); }
public void OneTimeSetUp() { var logger = new TestableLogger(); _player = new Player(new TestableLogger(), new CharacterCriticalStrikeRule()); _player.EatTrollsEar(new TestableDice(1), logger.Log); }
public void ShouldLogNoStatusMessageWhenLicenseIsValid() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); licenseManager.LogLicenseStatus(LicenseStatus.Valid, logger, new License()); Assert.AreEqual(0, logger.Logs.Count); }
public void TimeExtensionMethod_NegativePrettyDeltaTime_LogsWarningWithCallingMethod() { var timespan = TimeSpan.FromMinutes(-1); var logger = new TestableLogger(); timespan.ToPretty(logger); Assert.IsTrue(logger.Outbox.First().Contains(nameof(TimeExtensionMethod_NegativePrettyDeltaTime_LogsWarningWithCallingMethod))); }
public void Log_GivenFormattedMessage_ThenMessageShouldBeFormatted() { var subject = new TestableLogger(); const string name = "Fred"; subject.LogInformation("My name is {Name}.", name); Assert.That(subject.LogEntries[0].Message, Is.EqualTo("My name is Fred.")); }
public void Log_GivenErrorException_ThenExceptionIsSet() { var subject = new TestableLogger(); var exception = new Exception(TestData.WellKnownString); subject.LogError(exception, "An error occurred!"); Assert.That(subject.LogEntries[0].Exception, Is.EqualTo(exception)); }
public void IsEnabled_ReturnsTrue() { var subject = new TestableLogger(); foreach (var logLevel in EnumUtil.GetValues <LogLevel>()) { Assert.That(subject.IsEnabled(logLevel), Is.True); } }
protected SendGridEmailServiceTests() { this.sendGridClient = new Mock <ISendGridClient>(); this.configuration = Options.Create(new SendGridConfiguration { ServiceEmail = SendGridEmailServiceTests.ServiceEmail, RealContactEmail = SendGridEmailServiceTests.RealContactEmail, RecordOfSalesTemplateId = SendGridEmailServiceTests.TemplateId, }); this.logger = new TestableLogger <SendGridEmailService>(); }
public void WhenUpgradeProtectionExpiredForThisRelease() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); licenseManager.LogLicenseStatus(LicenseStatus.InvalidDueToExpiredUpgradeProtection, logger, new License(), "fake-url"); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Error, logger.Logs[0].level); Assert.AreEqual("Upgrade protection expired. In order for us to continue to provide you with support and new versions of the Particular Service Platform, contact us to renew your license: [email protected]", logger.Logs[0].message); }
public void WhenSubscriptionLicenseExpired() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); licenseManager.LogLicenseStatus(LicenseStatus.InvalidDueToExpiredSubscription, logger, new License(), "fake-url"); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Error, logger.Logs[0].level); Assert.AreEqual("License expired. Contact us to renew your license: [email protected]", logger.Logs[0].message); }
public void WhenUpgradeProtectionExpiredForThisRelease() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); licenseManager.LogLicenseStatus(LicenseStatus.InvalidDueToExpiredUpgradeProtection, logger, new License()); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Error, logger.Logs[0].level); Assert.AreEqual("Upgrade protection expired. In order for us to continue to provide you with support and new versions of the Particular Service Platform, please extend your upgrade protection by visiting http://go.particular.net/upgrade-protection-expired", logger.Logs[0].message); }
public void WhenTrialLicenseExpired() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); licenseManager.LogLicenseStatus(LicenseStatus.InvalidDueToExpiredTrial, logger, new License()); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Error, logger.Logs[0].level); Assert.AreEqual("Trial license expired. To continue using the Particular Service Platform, please extend your trial or purchase a license by visiting http://go.particular.net/trial-expired", logger.Logs[0].message); }
public void SetUp() { _logger = new TestableLogger(); var player = new Player(_logger, new CharacterCriticalStrikeRule()); player.IncreaseHealth(10); player.IncreaseStrength(10); _firstFighter = player; _secondFighter = new Troll(1, 1, _logger); var battle = new Battle(_firstFighter, _secondFighter, new TestableDice(10)); _winner = battle.GetWinner(); }
public void DownloadFactory_Never_Logs() { var testableLogger = new TestableLogger(); var testContainerManager = new TestContainerManager(c => { var loggerRegistration = Lifestyle.Singleton.CreateRegistration(() => testableLogger, c); c.RegisterConditional(typeof(ILogger), loggerRegistration, pc => !pc.Handled); }); var downloadFactory = testContainerManager.Container.GetInstance <IFactory <string, string, string> >(); TestHelper.AssertCatch <WebException>(() => downloadFactory.Create("https://httpbin.org/404", "")); Assert.AreEqual(0, testableLogger.Outbox.Count); }
public void WhenTrialLicenseExpired(bool isDevLicenseRenewal, string expectedMessage) { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); var license = new License { IsExtendedTrial = isDevLicenseRenewal }; licenseManager.LogLicenseStatus(LicenseStatus.InvalidDueToExpiredTrial, logger, license, "fake-url"); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Error, logger.Logs[0].level); Assert.AreEqual(expectedMessage, logger.Logs[0].message); }
public void ErrorableDownloadFactory_Fake404UntilExceedsErrorLimit_Has1ErrorLog() { var testableLogger = new TestableLogger(); var testContainerManager = _createTestContainerManager(testableLogger); var errorableDownloadFactory = testContainerManager.Container.GetInstance <IErrorableFactory <string, string, string, string> >(); var settings = testContainerManager.Container.GetInstance <ISettings>(); foreach (var i in Enumerable.Range(0, settings.DownloadErrorLimit + 1)) { errorableDownloadFactory.Create("google.com", "", ""); } Assert.AreEqual(1, testableLogger.ErrorOutbox.Count); }
public void ErrorableDownloadFactory_Fake404_ReturnsErrorTextNoErrorLogsAndOneWarningLog() { var testableLogger = new TestableLogger(); var testContainerManager = _createTestContainerManager(testableLogger); var errorableDownloadFactory = testContainerManager.Container.GetInstance <IErrorableFactory <string, string, string, string> >(); var errorText = Guid.NewGuid().ToString(); var html = errorableDownloadFactory.Create("", "", errorText); testableLogger.ErrorOutbox.WriteDump(); Assert.AreEqual(errorText, html); Assert.AreEqual(0, testableLogger.ErrorOutbox.Count); Assert.AreEqual(1, testableLogger.WarningOutbox.Count); }
public Task InitializeAsync() { Logger = new TestableLogger(); LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(c => { c.AddConsole(); c.ConfigureTestableLogger(Logger); }); LogoHardwareMock = new LogoHardwareMock(); Logo = CreateLogo(); Logo.Connect(); return(Task.CompletedTask); }
private static TestContainerManager _createTestContainerManager(TestableLogger testableLogger, ITimeService timeService = null, Action <TestSettings> setSettings = null) { var downloadFactory = Substitute.For <IFactory <string, string, string> >(); downloadFactory.Create(Arg.Any <string>(), Arg.Any <string>()).Throws(_ => new WebException()); return(new TestContainerManager(c => { var timeServiceRegistration = Lifestyle.Singleton.CreateRegistration(() => timeService, c); if (timeService != null) { c.RegisterConditional(typeof(ITimeService), timeServiceRegistration, pc => !pc.Handled); } var downloadFactoryRegistration = Lifestyle.Singleton.CreateRegistration(() => downloadFactory, c); c.RegisterConditional(typeof(IFactory <string, string, string>), downloadFactoryRegistration, _ => true); var loggerRegistration = Lifestyle.Singleton.CreateRegistration(() => testableLogger, c); c.RegisterConditional(typeof(ILogger), loggerRegistration, pc => !pc.Handled); }, settings => setSettings?.Invoke(settings))); }
public void WhenSubscriptionAboutToExpire(int daysRemaining, string expectedMessage) { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); var today = new DateTime(2012, 12, 12); var license = new License { utcDateTimeProvider = () => today, ExpirationDate = today.AddDays(daysRemaining) }; licenseManager.LogLicenseStatus(LicenseStatus.ValidWithExpiringSubscription, logger, license); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Warn, logger.Logs[0].level); Assert.AreEqual(expectedMessage, logger.Logs[0].message); }
public void WhenTrialLicenseAboutToExpire(int daysRemaining, bool isDevLicenseRenewal, string expectedMessage) { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); var today = new DateTime(2012, 12, 12); var license = new License { utcDateTimeProvider = () => today, ExpirationDate = today.AddDays(daysRemaining), IsExtendedTrial = isDevLicenseRenewal }; licenseManager.LogLicenseStatus(LicenseStatus.ValidWithExpiringTrial, logger, license, "fake-url"); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Warn, logger.Logs[0].level); Assert.AreEqual(expectedMessage, logger.Logs[0].message); }
public void WhenUpgradeProtectionExpiredForFutureVersions() { var logger = new TestableLogger(); var licenseManager = new LicenseManager(); var today = new DateTime(2012, 12, 12); var license = new License { utcDateTimeProvider = () => today, releaseDateProvider = () => today.AddDays(-20), UpgradeProtectionExpiration = today.AddDays(-10) }; licenseManager.LogLicenseStatus(LicenseStatus.ValidWithExpiredUpgradeProtection, logger, license); Assert.AreEqual(1, logger.Logs.Count); Assert.AreEqual(LogLevel.Warn, logger.Logs[0].level); Assert.AreEqual("Upgrade protection expired. In order for us to continue to provide you with support and new versions of the Particular Service Platform, please extend your upgrade protection by visiting http://go.particular.net/upgrade-protection-expired", logger.Logs[0].message); }
public async Task InitializeAsync() { Logger = new TestableLogger(); LoggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(c => c.ConfigureTestableLogger(Logger)); LogoHardwareMock = new LogoHardwareMock(); var brokerIpAddress = IPAddress.Loopback; var brokerPort = 1889; var mqttFactory = new MqttFactory(); mqttServer = mqttFactory.CreateMqttServer(); MqttClient = mqttFactory.CreateMqttClient(); MqttClient.ApplicationMessageReceivedHandler = new MqttApplicationMessageReceivedHandlerDelegate(args => MqttMessageReceived?.Invoke(this, args)); var mqttServerOptions = new MqttServerOptionsBuilder() .WithClientId(nameof(IntegrationTestEnvironment) + "Broker") .WithDefaultEndpointBoundIPAddress(brokerIpAddress) .WithDefaultEndpointPort(brokerPort) .Build(); var mqttClientOptions = new MqttClientOptionsBuilder() .WithClientId(nameof(IntegrationTestEnvironment) + "Client") .WithTcpServer(brokerIpAddress.ToString(), brokerPort) .Build(); await mqttServer .StartAsync(mqttServerOptions) .ConfigureAwait(false); await MqttClient .ConnectAsync(mqttClientOptions) .ConfigureAwait(false); var config = IntegrationTests.GetConfig(brokerIpAddress.ToString(), brokerPort); config.Validate(); appContext = Logic .Initialize(LoggerFactory, config); await appContext .Connect() .ConfigureAwait(false); }
public void OneTimeSetUp() { _logger = new TestableLogger(); _dice = new TestableDice(1); _game = new TrollSlayerStoryGame( _logger, _dice, new TrollFactory( new TrollStartupRule(), new TrollStatsChangeRule(), _dice, _logger), new Player( _logger, new CharacterCriticalStrikeRule()), new PlayerEquipmentRule()); _game.Run(); }
public void Log_GivenLogEntries_ThenAllAreSavedInOutput(LogLevel logLevel, string expected) { var subject = new TestableLogger(); switch (logLevel) { case LogLevel.Critical: subject.LogCritical("Critical error occurred."); break; case LogLevel.Trace: subject.LogTrace("Starting the test."); break; case LogLevel.Debug: subject.LogDebug("Additional information."); break; case LogLevel.Information: subject.LogInformation("Finished test."); break; case LogLevel.Warning: subject.LogWarning("Test results inconclusive."); break; case LogLevel.Error: subject.LogError("An error occurred."); break; default: throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null); } Assert.That(subject.LogEntries.Count, Is.EqualTo(1)); Assert.That(subject.LogEntries[0].LogLevel, Is.EqualTo(logLevel)); Assert.That(subject.LogEntries[0].Message, Is.EqualTo(expected)); }
public void ErrorableDownloadFactory_Fake404InsideWindow_Has1ErrorLogAndTwoWarningLogs() { var testableLogger = new TestableLogger(); var timeService = Substitute.For <ITimeService>(); var window = TimeSpan.FromHours(1); var time0 = DateTime.Today; timeService.UtcNow.Returns(time0); var testContainerManager = _createTestContainerManager(testableLogger, timeService, s => { s.DownloadErrorLimit = 2; s.DownloadErrorWindow = window; }); var errorableDownloadFactory = testContainerManager.Container.GetInstance <IErrorableFactory <string, string, string, string> >(); var settings = testContainerManager.Container.GetInstance <ISettings>(); foreach (var i in Enumerable.Range(0, settings.DownloadErrorLimit + 1)) { errorableDownloadFactory.Create("google.com", "", ""); } Assert.AreEqual(1, testableLogger.ErrorOutbox.Count); Assert.AreEqual(3, testableLogger.WarningOutbox.Count); }