Example #1
0
        public async void GetAll_test()
        {
            // Given
            var mocker           = new AutoMocker();
            var droneServiceMock = mocker.CreateInstance <DroneService>();

            var faker = AutoFaker.Create();

            var drones = faker.Generate <IEnumerable <Drone> >();

            var responseDronesTask = Task.Factory.StartNew(() => drones);

            var expectResponse = drones;

            var droneRepository = mocker.GetMock <IDroneRepository>();

            droneRepository.Setup(r => r.ObterTodos()).Returns(responseDronesTask).Verifiable();

            //When
            var result = await droneServiceMock.GetAll();

            //Then
            droneRepository.Verify(mock => mock.ObterTodos(), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
Example #2
0
        public async void Insert_test()
        {
            // Given
            var mocker           = new AutoMocker();
            var droneServiceMock = mocker.CreateInstance <DroneService>();

            var faker = AutoFaker.Create();

            var drone = faker.Generate <Drone>();

            var responseDroneTask          = Task.Factory.StartNew(() => true);
            var responseAdicionarDroneTask = Task.Factory.StartNew(() => drone);

            var expectResponse = true;

            var droneRepository = mocker.GetMock <IDroneRepository>();

            droneRepository.Setup(r => r.Adicionar(It.IsAny <Drone>())).Returns(responseAdicionarDroneTask).Verifiable();
            droneRepository.Setup(r => r.UnitOfWork.Commit()).Returns(responseDroneTask).Verifiable();

            //When
            var result = await droneServiceMock.Insert(drone);

            //Then
            // droneRepository.Verify(mock => mock.Adicionar(It.IsAny<Drone>()), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
Example #3
0
        protected ServiceFixture(ITestOutputHelper output, IAutoBinder binder)
        {
            _faker = AutoFaker.Create(builder =>
            {
                builder.WithOverride(new ProductGeneratorOverride());

                if (binder != null)
                {
                    builder.WithBinder(binder);
                }
            });

            // Setup
            var id        = _faker.Generate <Guid>();
            var generator = new AutoFaker <Item>(binder)
                            .RuleFor(item => item.Id, () => id)
                            .RuleFor(item => item.Name, faker => faker.Person.FullName);

            _item  = generator;
            _items = generator.Generate(5);

            _repository = Substitute.For <IRepository>();

            _repository.Get(id).Returns(_item);
            _repository.GetAll().Returns(_items);

            _service = new Service(_repository);
            _output  = output;
        }
        public async void GetAll_test()
        {
            // Given
            var mocker          = new AutoMocker();
            var userServiceMock = mocker.CreateInstance <UserService>();

            var faker = AutoFaker.Create();

            var user = faker.Generate <User>();

            var responseUserTask = Task.Factory.StartNew(() => user);

            var expectResponse = user;

            var userRepository = mocker.GetMock <IUserRepository>();

            userRepository.Setup(r => r.GetByUserNameEPassword(It.IsAny <string>(), It.IsAny <string>())).Returns(responseUserTask).Verifiable();

            //When
            var result = await userServiceMock.Authenticate(It.IsAny <string>(), It.IsAny <string>());

            //Then
            userRepository.Verify(mock => mock.GetByUserNameEPassword(It.IsAny <string>(), It.IsAny <string>()), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
            public Generate_Instance()
            {
                var faker = AutoFaker.Create() as AutoFaker;

                _faker  = faker;
                _config = faker.Config;
            }
Example #6
0
        public void DadoQueOClientePossuaUmUsuarioCadastrado()
        {
            var faker = AutoFaker.Create();
            var user  = faker.Generate <Usuario>();


            _context.Set(user);
        }
        public PagamentoRepositoryTests()
        {
            _faker      = AutoFaker.Create();
            _comparison = new CompareLogic();
            var serviceCollection = new ServiceCollection();

            serviceCollection.ResolveConverters().BuildServiceProvider();
        }
Example #8
0
 public FixtureBase()
 {
     Faker = AutoFaker.Create(builder =>
     {
         builder
         .WithBinder <NSubstituteBinder>()
         .WithOverride(new ProductGeneratorOverride());
     });
 }
Example #9
0
        public void Should_Apply_Conventions_For_Alias()
        {
            _faker = AutoFaker.Create(builder =>
            {
                builder.WithConventions(c => c.Email.Aliases("anotheremail", "  "));
            });

            var instance = _faker.Generate <TestClass>();

            instance.AnotherEmail.Should().Contain("@");
        }
Example #10
0
        public void Should_Not_Apply_Conventions_For_Disabled_Generator()
        {
            _faker = AutoFaker.Create(builder =>
            {
                builder.WithConventions(c => c.Email.Enabled = false);
            });

            var instance = _faker.Generate <TestClass>();

            instance.Email.Should().NotContain("@");
        }
Example #11
0
        public void Should_Apply_Conventions()
        {
            _faker = AutoFaker.Create(builder =>
            {
                builder.WithConventions();
            });

            var instance = _faker.Generate <TestClass>();

            instance.Email.Should().Contain("@");
        }
Example #12
0
        public void Generate_ExampleStruct()
        {
            IAutoFaker faker = AutoFaker.Create(builder =>
            {
                builder.WithOverride(new ExampleStructOverride());
            });

            var exampleStruct = faker.Generate <ExampleStruct>();

            _outputHelper.WriteLine(exampleStruct.Month.ToString());

            Assert.True(exampleStruct.Month > 0 && exampleStruct.Month <= 12);
        }
        public T Generate <T>()
        {
            var faker = AutoFaker.Create(builder =>
                                         builder.WithOverride(new PrimitiveGeneratorOverride()).
                                         WithOverride(_typeImplementationOverride).
                                         WithBinder(new SkipNoSerializeBinder())
                                         );

            var obj = faker.Generate <T>();

            GeneratedObj = obj;
            return(obj);
        }
Example #14
0
        public void Should_Not_Apply_Conventions_When_Generator_AlwaysGenerate_Is_False()
        {
            _faker = AutoFaker.Create(builder =>
            {
                builder
                .WithOverride(new TestGeneratorOverride())
                .WithConventions(c => c.Email.AlwaysGenerate = false);
            });

            var instance = _faker.Generate <TestClass>();

            instance.Email.Should().Be("EMAIL");
        }
        public async void Pedido_AdicionarPedido_ComSucesso()
        {
            // Given
            var mocker = new AutoMocker();
            var faker  = AutoFaker.Create();
            var adicionarPedidoViewModel = faker.Generate <AdicionarPedidoViewModel>();
            var usuario = faker.Generate <Usuario>();

            var identity = new ClaimsIdentity(new Claim[]
                                              { new Claim(ClaimTypes.Name, usuario.UserName.ToString()),
                                                new Claim(ClaimTypes.Role, usuario.Role.ToString()) });


            var pedidoControllerMock = mocker.CreateInstance <PedidoController>();

            pedidoControllerMock.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext()
                {
                    User = new ClaimsPrincipal(identity)
                }
            };

            var cliente = usuario.Cliente;
            var pedido  = faker.Generate <Pedido>();

            pedido.InformarCliente(cliente);
            var responsePedidoTask       = Task.Factory.StartNew(() => pedido);
            var responsUserTask          = Task.Run(() => usuario);
            var responeInserirPedidoTask = Task.Factory.StartNew(() => true);
            var pedidoService            = mocker.GetMock <IPedidoService>();
            var userService = mocker.GetMock <IUserService>();

            userService.Setup(u => u.GetByUserName(It.IsAny <string>())).Returns(responsUserTask).Verifiable();
            pedidoService.Setup(p => p.IsPedidoValido(It.IsAny <Pedido>())).Returns(string.Empty).Verifiable();
            pedidoService.Setup(p => p.Insert(It.IsAny <Pedido>())).Returns(responeInserirPedidoTask).Verifiable();


            var expectResponse = pedidoControllerMock.Ok(responsePedidoTask);

            //When
            var result = await pedidoControllerMock.AdicionarPedido(adicionarPedidoViewModel);


            //Then
            var comparison = new CompareLogic();

            pedidoService.Verify(mock => mock.Insert(It.IsAny <Pedido>()), Times.Once());

            Assert.Equal(expectResponse.StatusCode, ((OkObjectResult)result).StatusCode);
        }
        public void DadoQueASolicitacaoDePagamentoEEnviada()
        {
            // Given
            var faker = AutoFaker.Create();

            var adicionarPagamentoCartaoViewModelFaker = new AutoFaker <AdicionarPagamentoCartaoViewModel>()
                                                         .RuleFor(p => p.AnoVencimentoCartao, f => (DateTime.Now.Year + 2))
                                                         .RuleFor(p => p.MesVencimentoCartao, f => f.Random.Int(1, 12))
                                                         .RuleFor(p => p.NumeroCartao, f => f.Finance.CreditCardNumber())
                                                         .RuleFor(p => p.Valor, f => (double)f.Finance.Amount());

            var adicionarPagamentoCartaoViewModel = adicionarPagamentoCartaoViewModelFaker.Generate();

            _context.Set(adicionarPagamentoCartaoViewModel);
        }
Example #17
0
        public async Task QuandoOUsuarioAdicionarUmDroneAsync()
        {
            var mocker                  = new AutoMocker();
            var faker                   = AutoFaker.Create();
            var baseControllerMock      = mocker.CreateInstance <DroneController>();
            var droneService            = mocker.GetMock <IDroneService>();
            var adicionarDroneViewModel = faker.Generate <AdicionarDroneViewModel>();

            droneService.Setup(r => r.Insert(It.IsAny <Domain.Entities.Drone>())).Returns(Task.FromResult(true)).Verifiable();

            //When
            var resut = await baseControllerMock.PostDrone(adicionarDroneViewModel);

            _context.Set(resut);
        }
Example #18
0
        public async Task QuandoEuSolicitarUmDronePorId()
        {
            var mocker             = new AutoMocker();
            var faker              = AutoFaker.Create();
            var baseControllerMock = mocker.CreateInstance <DroneController>();
            var droneService       = mocker.GetMock <IDroneService>();

            droneService.Setup(r => r.GetById(It.IsAny <Int32>())).Returns(Task.FromResult(_context.Get <Domain.Entities.Drone>())).Verifiable();



            //When
            var resut = await baseControllerMock.GetDrone(It.IsAny <Int32>());

            _context.Set(resut.Result);
        }
Example #19
0
        public void QuandoOClienteInformaSuaSenhaCorreta()
        {
            var faker    = AutoFaker.Create();
            var password = faker.Generate <string>();

            var mocker             = new AutoMocker();
            var baseControllerMock = mocker.CreateInstance <OAuthController>();
            var userService        = mocker.GetMock <IUserService>();
            var loginViewModel     = faker.Generate <LoginViewModel>();

            userService.Setup(r => r.Authenticate(It.IsAny <string>(), It.IsAny <string>())).Returns(Task.FromResult(_context.Get <Usuario>())).Verifiable();

            //When
            var resut = baseControllerMock.Authenticate(loginViewModel);

            _context.Set(password);
            _context.Set(resut.Result);
        }
Example #20
0
        public async void ConsultaDrone_Test()
        {
            var mocker        = new AutoMoqer();
            var baseQueryMock = mocker.Create <DroneQuery>();

            var faker = AutoFaker.Create();

            var responseDroneRepo   = faker.Generate <List <DroneEntity> >();
            var responseUsuarioRepo = faker.Generate <UsuarioEntity>();
            var responsePedidosRepo = new List <PedidoEntity>
            {
                new AutoFaker <PedidoEntity>()
                .RuleFor(fake => fake.Drone, fake => responseDroneRepo[0])
                .RuleFor(fake => fake.DroneId, fake => responseDroneRepo[0].Id)
                .RuleFor(fake => fake.CompradorId, fake => responseUsuarioRepo.Id)
                .Generate()
            };


            var expectResponse = ExpectResponseDroneQueryList(responseDroneRepo, responsePedidosRepo, responseUsuarioRepo);;

            var droneRepoMock   = mocker.GetMock <IDronesRepository>();
            var pedidosRepoMock = mocker.GetMock <IPedidosRepository>();
            var usuarioRepoMock = mocker.GetMock <IUsuariosRepository>();

            droneRepoMock.Setup(r => r.GetAll()).ReturnsAsync(responseDroneRepo).Verifiable();
            pedidosRepoMock.Setup(r => r.GetByDroneID(responseDroneRepo[0].Id)).ReturnsAsync(responsePedidosRepo).Verifiable();
            usuarioRepoMock.Setup(r => r.GetSingleById(responseUsuarioRepo.Id)).ReturnsAsync(responseUsuarioRepo).Verifiable();

            //When

            var result = await baseQueryMock.ConsultaDrone();

            //Then
            var comparison = new CompareLogic();

            droneRepoMock.Verify(mock => mock.GetAll(), Times.Once());
            pedidosRepoMock.Verify(mock => mock.GetByDroneID(It.IsAny <Guid>()), Times.Exactly(3));
            usuarioRepoMock.Verify(mock => mock.GetSingleById(It.IsAny <Guid>()), Times.Once());
            var comp = comparison.Compare(result, expectResponse);

            Assert.True(comp.AreEqual);
        }
Example #21
0
        public void Pedido_IsPedidoValido_Sucesso()
        {
            // Given
            var mocker            = new AutoMocker();
            var pedidoServiceMock = mocker.CreateInstance <PedidoService>();

            var faker = AutoFaker.Create();

            var drones = new AutoFaker <Drone>()
                         .RuleFor(u => u.Capacidade, f => f.Random.Int(7, 12))
                         .RuleFor(u => u.Velocidade, 40)
                         .RuleFor(u => u.Autonomia, 40)
                         .Generate(3);

            var cliente = new AutoFaker <Cliente>()
                          .RuleFor(c => c.Latitude, -23.594987)
                          .RuleFor(c => c.Longitude, -46.6552518).Generate();

            // var pedido = faker.Generate<Pedido>();
            var pedido = new AutoFaker <Pedido>()
                         .RuleFor(u => u.Peso, 2)
                         .RuleFor(u => u.Cliente, cliente).Generate();

            var responseDroneTask  = drones;
            var responsePedidoTask = Task.Factory.StartNew(() => pedido);

            var expectResponse = string.Empty;

            var droneRepository = mocker.GetMock <IDroneRepository>();

            droneRepository.Setup(r => r.ObterTodos()).ReturnsAsync(responseDroneTask).Verifiable();

            //When
            var result = pedidoServiceMock.IsPedidoValido(pedido);

            //Then
            droneRepository.Verify(mock => mock.ObterTodos(), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
Example #22
0
        public void DadoOUsuarioEstejaLogado()
        {
            var mocker  = new AutoMocker();
            var faker   = AutoFaker.Create();
            var usuario = faker.Generate <Usuario>();

            var identity = new ClaimsIdentity(new Claim[]
                                              { new Claim(ClaimTypes.Name, usuario.UserName.ToString()),
                                                new Claim(ClaimTypes.Role, usuario.Role.ToString()) });


            var pedidoControllerMock = mocker.CreateInstance <PedidoController>();

            pedidoControllerMock.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext()
                {
                    User = new ClaimsPrincipal(identity)
                }
            };
        }
Example #23
0
        public async Task Pedido_AdicionarPedido_ComSucessoAsync()
        {
            // Given
            var mocker = new AutoMocker();
            var faker  = AutoFaker.Create();
            var adicionarPedidoViewModel = faker.Generate <AdicionarClienteViewModel>();
            var usuario  = faker.Generate <Usuario>();
            var cliente  = faker.Generate <Cliente>();
            var identity = new ClaimsIdentity(new Claim[]
                                              { new Claim(ClaimTypes.Name, usuario.UserName.ToString()),
                                                new Claim(ClaimTypes.Role, usuario.Role.ToString()) });


            var clienteControllerMock = mocker.CreateInstance <ClienteController>();

            clienteControllerMock.ControllerContext = new ControllerContext {
                HttpContext = new DefaultHttpContext()
                {
                    User = new ClaimsPrincipal(identity)
                }
            };

            var responeInserirClienteTask = Task.Factory.StartNew(() => true);
            var clienteService            = mocker.GetMock <IClienteService>();
            var usuarioService            = mocker.GetMock <IUserService>();

            clienteService.Setup(p => p.Insert(It.IsAny <Cliente>())).Returns(responeInserirClienteTask).Verifiable();
            usuarioService.Setup(u => u.Insert(It.IsAny <Usuario>())).Returns(responeInserirClienteTask).Verifiable();


            var expectResponse = clienteControllerMock.CreatedAtAction("Get", new { id = cliente.Id }, cliente);

            //When
            var result = await clienteControllerMock.Post(adicionarPedidoViewModel);

            //Then

            clienteService.Verify(p => p.Insert(It.IsAny <Cliente>()), Times.Once());

            Assert.Equal((HttpStatusCode)expectResponse.StatusCode, (HttpStatusCode)Convert.ToInt32(((CreatedAtActionResult)result).StatusCode));
        }
Example #24
0
            public void Should_Use_Caller_Supplied_FakerHub()
            {
                // We infer that our FakerHub was used by reseeding it and testing that we get the same sequence both times.
                var fakerHub = new Faker();

                var configure = CreateConfigure <IAutoGenerateConfigBuilder>(
                    AutoFaker.DefaultConfig,
                    builder => builder.WithFakerHub(fakerHub));

                var faker = AutoFaker.Create(configure);

                fakerHub.Random = new Randomizer(1);

                var instance1 = faker.Generate <TestObject>();

                fakerHub.Random = new Randomizer(1);

                var instance2 = faker.Generate <TestObject>();

                instance1.Should().BeEquivalentTo(instance2);
            }
Example #25
0
        public async void GetById_test()
        {
            // Given
            var mocker            = new AutoMocker();
            var pedidoServiceMock = mocker.CreateInstance <PedidoService>();

            var faker = AutoFaker.Create();

            var drone = faker.Generate <Drone>();

            // var pedido = faker.Generate<Pedido>();
            var pedidoFaker = new AutoFaker <Pedido>()
                              .RuleFor(u => u.DroneId, f => f.Random.Int(1));

            var pedido = pedidoFaker.Generate();

            var responseDroneTask  = Task.Factory.StartNew(() => drone);
            var responsePedidoTask = Task.Factory.StartNew(() => pedido);

            var expectResponse = pedido; // pedidoServiceMock.GetById(responsePedido);

            var droneRepository  = mocker.GetMock <IDroneRepository>();
            var pedidoRepository = mocker.GetMock <IPedidoRepository>();

            droneRepository.Setup(r => r.ObterPorId(It.IsAny <Int32>())).Returns(responseDroneTask).Verifiable();
            pedidoRepository.Setup(r => r.ObterPorId(It.IsAny <Guid>())).Returns(responsePedidoTask).Verifiable();

            //When
            var result = await pedidoServiceMock.GetById(It.IsAny <Guid>());

            //Then

            droneRepository.Verify(mock => mock.ObterPorId(It.IsAny <Int32>()), Times.Once());
            pedidoRepository.Verify(mock => mock.ObterPorId(It.IsAny <Guid>()), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
Example #26
0
        public async void Pedido_InsertPedidoDentroDaCapacidadeDoDrone_Sucesso()
        {
            // Given
            var mocker            = new AutoMocker();
            var pedidoServiceMock = mocker.CreateInstance <PedidoService>();

            var faker = AutoFaker.Create();

            var pedidoFaker = new AutoFaker <Pedido>()
                              .RuleFor(u => u.Peso, f => 10);
            var pedido = pedidoFaker.Generate();

            var drones = new AutoFaker <Drone>()
                         .RuleFor(u => u.Capacidade, f => f.Random.Int(7, 12)).Generate(3);

            var responsePedidoTask = Task.Factory.StartNew(() => true);
            var responseDronesTask = drones;

            var expectResponse = true;

            var pedidoRepository = mocker.GetMock <IPedidoRepository>();
            var droneRepository  = mocker.GetMock <IDroneRepository>();

            pedidoRepository.Setup(r => r.Adicionar(It.IsAny <Pedido>())).Returns(responsePedidoTask).Verifiable();
            pedidoRepository.Setup(r => r.UnitOfWork.Commit()).Returns(responsePedidoTask).Verifiable();
            droneRepository.Setup(r => r.ObterTodos()).ReturnsAsync(responseDronesTask).Verifiable();

            //When
            var result = await pedidoServiceMock.Insert(pedido);

            //Then
            //pedidoRepository.Verify(mock => mock.Adicionar(It.IsAny<Pedido>()), Times.Once());
            //droneRepository.Verify(mock => mock.ObterTodos(), Times.Once());

            CompareLogic comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }
        public async void Insert_test()
        {
            // Given
            var faker   = AutoFaker.Create();
            var bus     = faker.Generate <IMediatrHandler>();
            var options = new DbContextOptionsBuilder <DCDroneDelivery>()
                          .UseInMemoryDatabase(databaseName: "DroneDelivery")
                          .Options;

            var clienteNovo = faker.Generate <Cliente>();

            using (var contexto = new DCDroneDelivery(options, bus))
            {
                //when
                var clienteRepository = new ClienteRepository(contexto);
                await clienteRepository.Adicionar(clienteNovo);

                var insertCliente = await clienteRepository.UnitOfWork.Commit();

                //then
                Assert.True(insertCliente);
            }
        }
Example #28
0
        public async void ProcessarPagamento_Test_InternalServerError()
        {
            //Given
            var commandMock = new Mock <IPagamentoCommand>();

            var faker = AutoFaker.Create();

            var param = faker.Generate <CartaoParam>();

            var baseControllerMock = new PagamentoController(commandMock.Object);
            var expectResponse     = baseControllerMock.StatusCode(500);

            commandMock.Setup(r => r.ProcessarPagamento(It.IsAny <CartaoParam>())).ThrowsAsync(new Exception()).Verifiable();

            //When
            var result = await baseControllerMock.Post(param);

            //Then
            var comparison = new CompareLogic();

            commandMock.Verify(mock => mock.ProcessarPagamento(It.IsAny <CartaoParam>()), Times.Once());
            Assert.True(comparison.Compare(((ObjectResult)result).StatusCode, expectResponse.StatusCode).AreEqual);
        }
Example #29
0
        public void Generate_OverrideRulesAreAppliedPerType()
        {
            //setup
            var target = new AutoBogusGenerator(AutoFaker.Create(builder =>
            {
                builder.WithOverride <Post>((ov) =>
                {
                    var instance        = (Post)ov.Instance;
                    instance.CategoryId = 5;
                    instance.PostText   = "1234";
                    return(instance);
                });
            }));

            //invoke
            List <Post> posts = (List <Post>)target.Generate(new GeneratorContext
            {
                Description = new EntityDescription <Post>()
            });

            //assert
            AssertPostNotEmpty(posts);
        }
        public async void Update_test()
        {
            // Given
            var faker   = AutoFaker.Create();
            var bus     = faker.Generate <IMediatrHandler>();
            var options = new DbContextOptionsBuilder <DCDroneDelivery>().UseInMemoryDatabase(databaseName: "DroneDelivery").Options;
            var cliente = faker.Generate <Cliente>();

            //Seed
            using (var contexto = new DCDroneDelivery(options, bus))
            {
                contexto.Cliente.AddRange(cliente);
                contexto.SaveChanges();
            }

            bool expectResponse;
            bool result;

            using (var contexto = new DCDroneDelivery(options, bus))
            {
                contexto.Cliente.Update(cliente);
                expectResponse = contexto.SaveChanges() > 0;
            }

            using (var contexto = new DCDroneDelivery(options, bus))
            {
                var clienteRepository = new ClienteRepository(contexto);
                await clienteRepository.Atualizar(cliente);

                result = contexto.SaveChanges() > 0;
            }

            var comparer = new CompareLogic();

            Assert.True(comparer.Compare(expectResponse, result).AreEqual);
        }