public void ValidateDomain() { // Arrange var domainId = 1L; var apiResponse = @"{ 'id': 1, 'valid': true, 'validation_resuts': { 'mail_cname': { 'valid': false, 'reason': 'Expected your MX record to be \'mx.sendgrid.net\' but found \'example.com\'.' }, 'dkim1': { 'valid': true, 'reason': null }, 'dkim2': { 'valid': true, 'reason': null }, 'spf': { 'valid': true, 'reason': null } } }" ; var mockHttp = new MockHttpMessageHandler(); mockHttp.Expect(HttpMethod.Post, Utils.GetSendGridApiUri(ENDPOINT, $"domains/{domainId}/validate")).Respond("application/json", apiResponse); var client = Utils.GetFluentClient(mockHttp); var whitelabel = new Whitelabel(client); // Act var result = whitelabel.ValidateDomainAsync(domainId).Result; // Assert mockHttp.VerifyNoOutstandingExpectation(); mockHttp.VerifyNoOutstandingRequest(); result.ShouldNotBeNull(); result.DomainId.ShouldBe(1); result.IsValid.ShouldBe(true); result.ValidationResults.Dkim1.IsValid.ShouldBe(true); result.ValidationResults.Dkim1.Reason.ShouldBeNull(); result.ValidationResults.Dkim2.IsValid.ShouldBe(true); result.ValidationResults.Dkim2.Reason.ShouldBeNull(); result.ValidationResults.Mail.IsValid.ShouldBe(false); result.ValidationResults.Mail.Reason.ShouldBe("Expected your MX record to be \'mx.sendgrid.net\' but found \'example.com\'."); result.ValidationResults.Spf.IsValid.ShouldBe(true); result.ValidationResults.Spf.Reason.ShouldBeNull(); }