public void TestRead() { JsonSerializerOptions options = new JsonSerializerOptions(); options.SetupExtensions(); const string json = @"{""key1"":12,""key2"":""value""}"; SerializableError value = JsonSerializer.Deserialize <SerializableError>(json, options); Assert.NotNull(value); Assert.Equal(2, value.Count); Assert.True(value.ContainsKey("key1")); Assert.True(value.ContainsKey("key2")); Assert.Equal(12L, value["key1"]); Assert.Equal("value", value["key2"]); }
public static void EnsureBadRequestObjectResultForError(this IActionResult actionResult, String expectedErrorKey, String expectedErrorMsg) { SerializableError content = actionResult.EnsureBadRequestObjectResult <SerializableError>(); Assert.True(content.ContainsKey(expectedErrorKey)); Object rawElement = content[expectedErrorKey]; Assert.IsAssignableFrom <IEnumerable <String> >(rawElement); IEnumerable <String> errorElements = (IEnumerable <String>)rawElement; Assert.Single(errorElements); Assert.Equal(expectedErrorMsg, errorElements.First()); }
public async Task PostPayment_ReturnsBadRequestObjectResult_WhenInvalidModelStateReturned() { // Arrange Guid id = Guid.NewGuid(); PaymentStatus paymentStatus = PaymentStatus.Paid; PaymentReqVM paymentReqVM = MockPaymentReqVM.Get(); PaymentReqRespModel paymentReqRespModel = MockPaymentReqRespModel.Get(id, paymentStatus); ModelStateDictionary modelStateDictionary = new ModelStateDictionary(); modelStateDictionary.AddModelError("UnitTest", "Error"); mockPaymentManager.Setup(s => s.PostAsync(It.IsAny <PaymentReqModel>(), It.IsAny <ModelStateDictionary>())) .Returns(Task.FromResult <(PaymentReqRespModel, ModelStateDictionary)>((paymentReqRespModel, modelStateDictionary))) .Verifiable(); // Act ActionResult actionResult = await paymentController.Post(paymentReqVM) as ActionResult; // Assert Assert.IsNotNull(actionResult); Assert.IsInstanceOf <BadRequestObjectResult>(actionResult); BadRequestObjectResult badRequestObjectResult = actionResult as BadRequestObjectResult; Assert.IsNotNull(badRequestObjectResult); Assert.AreEqual(StatusCodes.Status400BadRequest, badRequestObjectResult.StatusCode); Assert.IsNotNull(badRequestObjectResult.Value); Assert.IsInstanceOf <SerializableError>(badRequestObjectResult.Value); SerializableError serializableError = badRequestObjectResult.Value as SerializableError; Assert.IsNotNull(serializableError); Assert.AreEqual(1, serializableError.Keys.Count()); Assert.IsTrue(serializableError.ContainsKey("UnitTest")); mockPaymentManager.Verify(v => v.PostAsync(It.IsAny <PaymentReqModel>(), It.IsAny <ModelStateDictionary>())); }
public static void ContainsKeyAndErrorMessage(this SerializableError error, string key, string errorMessage) { error.Should().NotBeNull(); error.ContainsKey(key).Should().BeTrue(); ((string[])error[key])[0].Should().Be(errorMessage); }