public async Task GetLatestQuotes_WhenInputIsValid_ShouldSuccessfullyReturnLatestQuotes() { //Arrange var expectedResult = new Dictionary <string, double> { { "EUR", 123.1 } }; cryptoServiceMock.Setup(x => x.GetLatesQuotes(It.IsAny <string>(), It.IsAny <CancellationToken>())) .ReturnsAsync(expectedResult); //Act var result = await cryptoController.GetLatestQuotes(BTCsymbol, cancellationTokenSource.Token); var resultCrypto = ((ObjectResult)result); //Assert cryptoServiceMock.Verify(x => x.GetLatesQuotes(It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Once); Assert.Equal((int)HttpStatusCode.OK, resultCrypto.StatusCode); Assert.Equal(expectedResult.FirstOrDefault().Key, ((CryptoQuoteDto)resultCrypto.Value).ExchangeRate.FirstOrDefault().Key); Assert.Equal(expectedResult.FirstOrDefault().Value, ((CryptoQuoteDto)resultCrypto.Value).ExchangeRate.FirstOrDefault().Value); }