예제 #1
0
        public void DependenciaConcretaSelada()
        {
            // arrange
            var retornosEsperados = GerarRetornos();
            var parametros        = retornosEsperados.Select(x => x.Valor).ToArray();

            //codigo gera erro por metodo não permitir sobreescrita
            //var mockDependencia = new Mock<DependenciaConcretaSelada>();
            //foreach (var esperado in retornosEsperados)
            //    mockDependencia.Setup(x => x.Execute(esperado.Valor)).Returns(esperado);

            var dependenciaNaoMocavel = new DependenciaConcretaSelada();
            var sut = new SistemaSobTesteDependenteDeConcretaSelada(dependenciaNaoMocavel);

            // act
            var resultado = sut.MetodoTestado(parametros) as List <Retorno>;

            // assert
            Assert.NotNull(resultado);
            Assert.IsType <List <Retorno> >(resultado);
            Assert.True(resultado.Count == retornosEsperados.Length);
            Assert.True(resultado.Select(x => x.Valor).Distinct().Count() == parametros.Distinct().Count());

            foreach (var item in resultado)
            {
                Assert.Contains(item, retornosEsperados); // assert vai falhar
                Assert.Contains <Retorno>(retornosEsperados, i => i.Valor == item.Valor);
            }
        }
 public SistemaSobTesteDependenteDeConcretaSelada(DependenciaConcretaSelada dependencia) : base(dependencia)
 {
 }