public void TestDeConversaoDeMoeda() { Mock <IMoedaFactory> moedaFactoryMock = new Mock <IMoedaFactory>(); Mock <IConversorACL> aclMck = new Mock <IConversorACL>(); Mock <IConversorACLFactory> aclFactoryMck = new Mock <IConversorACLFactory>(); ConverterMoedaRequest request = new ConverterMoedaRequest() { SiglaMoedaOrigem = "BRL", MoedaParaConversao = "USD", ValorParaConversao = 1M }; IMoeda moedaOrigem = new Moeda(request.SiglaMoedaOrigem, request.ValorParaConversao); aclMck.Setup(x => x.GetCotacaoComBaseNoDolar(request.SiglaMoedaOrigem)).Returns(new Moeda("BRL", 3.84M)); aclMck.Setup(x => x.GetCotacaoComBaseNoDolar(request.MoedaParaConversao)).Returns(new Moeda("USD", 1)); aclFactoryMck.Setup(x => x.Create()).Returns(aclMck.Object); moedaFactoryMock.Setup(x => x.Create("BRL", 1m)).Returns(moedaOrigem); IMoeda MoedaParaConversao = new Moeda("USD", 0.25M); moedaFactoryMock.Setup(x => x.Create("USD", It.IsAny <Decimal>())).Returns(MoedaParaConversao); IConversorService service = new ConversorService(aclFactoryMck.Object, moedaFactoryMock.Object); var result = service.ConverterMoeda(request); Assert.True(result != null); Assert.True(result.valor.Equals(MoedaParaConversao.Valor)); aclMck.VerifyAll(); aclFactoryMck.VerifyAll(); }
public void TestDeConversaoDeMoedaAPIExternaComCotacaoNoCache() { IMoeda MoedaDolar = new Moeda("USD", 1); IMoeda MoedaReal = new Moeda("BRL", 3.85M); Mock <IDistributedCache> mckcache = new Mock <IDistributedCache>(); Mock <IConfigurationHelper> mckconfigurationHelper = new Mock <IConfigurationHelper>(); mckconfigurationHelper.Setup(x => x.GetSection("ACCESS_KEY")).Returns("?access_key=1503440cbd4d453ce74962abd00a82c2"); mckconfigurationHelper.Setup(x => x.GetSection("BASE_URL")).Returns("http://apilayer.net/api/"); RedisConnectorHelperFactory redisHelperFactory = new RedisConnectorHelperFactory(mckcache.Object); IRedisConnectorHelper redisHelper = redisHelperFactory.Create(); mckcache.Setup(x => x.Get("GetCotacaoComBaseNoDolarBRL")).Returns(Serialize(MoedaReal)); mckcache.Setup(x => x.Get("GetCotacaoComBaseNoDolarUSD")).Returns(Serialize(MoedaDolar)); IConversorService service = new ConversorService(new ConversorACLFactory(new MoedaFactory(), new RedisConnectorHelperFactory(mckcache.Object), mckconfigurationHelper.Object), new MoedaFactory()); ConverterMoedaRequest request = new ConverterMoedaRequest() { SiglaMoedaOrigem = "BRL", MoedaParaConversao = "USD", ValorParaConversao = 1M }; var result = service.ConverterMoeda(request); Assert.True(result != null); Assert.True(result.valor > 0 || result.valor < 0); }