public void SendsCorrectData() { var client = new LogdnaClient(new Config()); client.Send(new[] { "Test message to be sent" }, 1); var message = Encoding.UTF8.GetString(_messageStream.ToArray()); message.Should().Be("Test message to be sent"); }
public void SendsOnlyProperPartOfMessageBuffer() { var client = new LogdnaClient(new Config()); client.Send(new[] { "message 1", "message 2", "message 3" }, 2); var message = Encoding.UTF8.GetString(_messageStream.ToArray()); message.Should().Be($"message 1{Environment.NewLine}message 2"); }
public void DoesNotRetrySendWhenTokenIsInvalid() { var forbiddenResponse = new Mock <HttpWebResponse>(); forbiddenResponse.SetupGet(x => x.StatusCode).Returns(HttpStatusCode.Forbidden); _webRequestMock.Setup(x => x.GetResponse()) .Throws(new WebException("test-error", null, WebExceptionStatus.ProtocolError, forbiddenResponse.Object)); var client = new LogdnaClient(new Config()); client.Send(new[] { "test message" }, 1); _webRequestMock.Verify(x => x.GetResponse(), Times.Once, "Invalid token should not be retried"); }
public void SendsToProperUrl() { var config = new Config { RootUrl = "https://logs.logdna.com/", CustomerToken = "customer-token", Tag = "log4net-test-logdna", App = "Log4net-logdna", Env = "prod", UserAgent = "user-agent" }; var client = new LogdnaClient(config); client.Send(new[] { "test message" }, 1); _usedUrl.Should().Be($"https://logs01.loggly.test/bulk/customer-token/tag/tag1,tag2,user-agent"); }
public void CreatesProperWebRequest() { var config = new Config { TimeoutInSeconds = 12, UserAgent = "test-agent" }; var request = (HttpWebRequest)LogdnaClient.CreateWebRequest(config, "http://test-url"); request.Should().BeEquivalentTo(new { Method = "POST", ReadWriteTimeout = 12000, Timeout = 12000, ContentType = "application/json", UserAgent = "test-agent", KeepAlive = true }, x => x.ExcludingMissingMembers()); }
public void RetriesSendWhenErrorOccurs() { var notFoundResponse = new Mock <HttpWebResponse>(); notFoundResponse.SetupGet(x => x.StatusCode).Returns(HttpStatusCode.NotFound); _webRequestMock.Setup(x => x.GetResponse()) .Throws(new WebException("test-error", null, WebExceptionStatus.ProtocolError, notFoundResponse.Object)); var config = new Config { MaxSendRetries = 3 }; var client = new LogdnaClient(config); client.Send(new[] { "test message" }, 1); _webRequestMock.Verify(x => x.GetResponse(), Times.Exactly(config.MaxSendRetries + 1), "Generic send error should be retried"); }