public async Task TrackAsync_CanSendSingleEvent() { var client = new MixpanelClient(Token, new HttpClient()); var mixpanelEvent = client.CreateEvent(); mixpanelEvent.Name = nameof(TrackAsync_CanSendSingleEvent); var outcome = await client.TrackAsync(mixpanelEvent).ConfigureAwait(false); Assert.True(outcome.Successful); }
public async Task TrackAsync_SendsSuccessfully_WhenEventIsNotNull() { var httpMessageHandlerMock = new Mock <HttpMessageHandler>(); httpMessageHandlerMock.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("{\"status\": 1, \"error\": null}") }) .Verifiable(); var httpClient = new HttpClient(httpMessageHandlerMock.Object); IMixpanelClient client = new MixpanelClient(EmptyToken, httpClient); var @event = client.CreateEvent(); var outcome = await client.TrackAsync(@event).ConfigureAwait(false); Assert.True(outcome.Successful); httpMessageHandlerMock.Protected().Verify("SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(request => request.Method == HttpMethod.Get), ItExpr.IsAny <CancellationToken>()); }