public void AoAcessarACadaDeAcessoADadosParaConsultarSeDeterminadoEmailJaEstaCadastrado_DeveRetornarFalsoCasoNaoExitaOEmail()
        {
            var user = new User
            {
                Name = "Daniel Silva Moreira",
                Email = "*****@*****.**",
                Phone = "3133333333",
                CellPhone = "3188888888",
                Address = "Rua Teste",
                Number = 123,
                District = "Centro",
                City = "Belo Horizonte",
                ZipCode = 30246130,
                State = "MG",
                Password = "******",
                UserType = "user"
            };

            const string email = "*****@*****.**";

            var auxContext = new LivrariaTDDContext();

            auxContext.Users.Add(user);

            auxContext.SaveChanges();

            var mockContext = new LivrariaTDDContext();

            _repository = new AccountRepository(mockContext);

            var result = _repository.CheckEmail(email);

            Assert.False(result);
        }
        public void AoAcessarACamadaDeAcessoADadosParaExcluirUmLivroNaoExistente_OMetodoDeveRetornarFalso()
        {
            var usuario = new User
            {
                District = "Centro",
                CellPhone = "3188888888",
                ZipCode = 30625130,
                City = "Belo Horizonte",
                State = "MG",
                Name = "Jô Soares",
                Email = "*****@*****.**",
                Number = 456,
                Address = "Afonso Pena",
                Password = "******",
                Phone = "313333333",
                UserType = "Cliente"
            };

            using (var livrariaContext = new LivrariaTDDContext())
            {
                usuario = livrariaContext.Users.Add(usuario);
                livrariaContext.SaveChanges();
            }

            var pedido = new Order
            {
                User = usuario,
                PaymentType = null,
                Products = new List<Product> { null, null },
                OrderValue = 0M,
                FreightValue = 10.00M,
                TotalValue = 0M + 10.00M
            };

            const int userId = -34;
            var listaIdProducts = new List<int> { -15, -10 };
            const int formaPagamentoId = -5;

            using (var auxContext = new LivrariaTDDContext())
            {
                var countAntes = auxContext.Orders.Count();
                Assert.AreEqual(0, countAntes);
            }

            using (var livrariaContext = new LivrariaTDDContext())
            {
                _repository = new PedidoRepository(livrariaContext);

                var result = _repository.SalvarPedido(pedido, userId, listaIdProducts, formaPagamentoId);

                Assert.False(result);
            }

            using (var auxContext = new LivrariaTDDContext())
            {
                var countDepois = auxContext.Orders.Count();
                Assert.AreEqual(0, countDepois);
            }
        }
 public bool SaveUser(User user)
 {
     try
     {
         var result = _context.Users.Add(user);
         _context.SaveChanges();
         return true;
     }
     catch (Exception)
     {
         return false;
     }
 }
        public void AoAcessarACamadaDeAcessoADadosParaSalvarUmaCompra_ACompraDeSerSalvaEOMetodoDeveRetornarVerdadeiro()
        {
            var novoLivro1 = new Product
            {
                Name = "Torre Negra",
                Author = "Stephen King",
                Publishing = "Universal",
                Year = 1995,
                Category = Categories.LiteraturaEstrangeira,
                Stock = 5,
                Price = 150.0M,
                Photo = "",
                Status = ProductStatus.Active
            };

            var novoLivro2 = new Product
            {
                Name = "Torre Negra Segunda edição",
                Author = "Stephen King",
                Publishing = "Universal",
                Year = 1998,
                Category = Categories.LiteraturaEstrangeira,
                Stock = 8,
                Price = 170.0M,
                Photo = "",
                Status = ProductStatus.Active
            };

            var formaPagamento = new PaymentType
                {
                    PaymentTypeName = "Boleto Bancário",
                    Icon = ""
                };

            var usuario = new User
                {
                    District = "Centro",
                    CellPhone = "3188888888",
                    ZipCode = 30625130,
                    City = "Belo Horizonte",
                    State = "MG",
                    Name = "Jô Soares",
                    Email = "*****@*****.**",
                    Number = 456,
                    Address = "Afonso Pena",
                    Password = "******",
                    Phone = "313333333",
                    UserType = "Cliente"
                };

            using (var livrariaContext = new LivrariaTDDContext())
            {
                novoLivro1 = livrariaContext.Products.Add(novoLivro1);
                novoLivro2 = livrariaContext.Products.Add(novoLivro2);
                formaPagamento = livrariaContext.PaymentTypes.Add(formaPagamento);
                usuario = livrariaContext.Users.Add(usuario);
                livrariaContext.SaveChanges();
            }

            var pedido = new Order
                {
                    User = usuario,
                    PaymentType = formaPagamento,
                    Products = new List<Product> {novoLivro1, novoLivro2},
                    OrderValue = novoLivro1.Price + novoLivro2.Price,
                    FreightValue = 10.00M,
                    TotalValue = novoLivro1.Price + novoLivro2.Price + 10.00M
                };

            int userId = usuario.UserId;
            var listaIdProducts = new List<int>{ novoLivro1.ProductId, novoLivro2.ProductId };
            int formaPagamentoId = formaPagamento.PaymentTypeId;

            using (var auxContext = new LivrariaTDDContext())
            {
                var countAntes = auxContext.Orders.Count();
                Assert.AreEqual(0, countAntes);
            }

            using (var livrariaContext = new LivrariaTDDContext())
            {
                _repository = new PedidoRepository(livrariaContext);

                var result = _repository.SalvarPedido(pedido, userId, listaIdProducts, formaPagamentoId);

                Assert.True(result);
            }

            using (var auxContext = new LivrariaTDDContext())
            {
                var countDepois = auxContext.Orders.Count();
                Assert.AreEqual(1, countDepois);
            }
        }
 public void SetUp()
 {
     _usuario = new User
     {
         Name = "Funcionario da Loja",
         Email = "*****@*****.**",
         Password = "******",
         UserType = "funcionario"
     };
 }
        public void AoSolicitarRegistroDeNovoUsuario_ACamadaDeNegociosDeveAcessarACamadaDeAcessoADadosParaSalvarOUsuario()
        {
            var user = new User
            {
                Name = "",
                Email = "",
                Phone = "",
                CellPhone = "",
                Address = "",
                Number = 0,
                City = "",
                District = "",
                ZipCode = 0,
                State = "",
                Password = "",
                UserType = ""
            };

            var mockContext = new Mock<IAccountRepository>();

            mockContext.Setup(x => x.SaveUser(user)).Returns(true);

            _business = new AccountBusiness(mockContext.Object);

            _business.SaveUser(user);

            mockContext.Verify(x => x.SaveUser(user), Times.AtLeastOnce());
        }
        public void AoSolicitarRegistroDeNovoUsuarioValido_DeveRetornarVedadeiroCasoOUsuarioSejaSalvo()
        {
            var user = new User
            {
                Name = "Daniel Silva Moreira",
                Email = "*****@*****.**",
                Phone = "3133333333",
                CellPhone = "3188888888",
                Address = "Rua Teste",
                Number = 123,
                City = "Belo Horizonte",
                District = "Centro",
                ZipCode = 30246130,
                State = "MG",
                Password = "******",
                UserType = "user"
            };

            var mockContext = new Mock<IAccountRepository>();

            mockContext.Setup(x => x.SaveUser(user)).Returns(true);

            _business = new AccountBusiness(mockContext.Object);

            var result = _business.SaveUser(user);

            Assert.IsTrue(result);
        }
        public void AoSolicitarRegistroDeNovoUsuarioInvalido_DeveRetornarFalsoCasoOUsuarioSejaSalvo()
        {
            var user = new User
            {
                Name = "",
                Email = "",
                Phone = "",
                CellPhone = "",
                Address = "",
                Number = 0,
                District = "",
                City = "",
                ZipCode = 0,
                State = "",
                Password = "",
                UserType = ""
            };

            var mockContext = new Mock<IAccountRepository>();

            mockContext.Setup(x => x.SaveUser(user)).Returns(false);

            _business = new AccountBusiness(mockContext.Object);

            var result = _business.SaveUser(user);

            Assert.IsFalse(result);
        }
        public void SetUp()
        {
            using (var db = new LivrariaTDDContext())
            {
                foreach (var item in db.Orders.ToList())
                {
                    db.Orders.Remove(item);
                }

                foreach (var item in db.Users.ToList())
                {
                    db.Users.Remove(item);
                }

                foreach (var item in db.Products.ToList())
                {
                    db.Products.Remove(item);
                }

                foreach (var item in db.PaymentTypes.ToList())
                {
                    db.PaymentTypes.Remove(item);
                }
                var cliente = new User
                    {
                        Name = "Cliente da Loja",
                        Email = "*****@*****.**",
                        Phone = "3133333333",
                        CellPhone = "3188888888",
                        Address = "Rua Teste",
                        Number = 123,
                        District = "Centro",
                        City = "Belo Horizonte",
                        ZipCode = 30246130,
                        State = "MG",
                        Password = "******", //123456
                        UserType = "user"
                    };
                var funcionario = new User
                    {
                        Name = "Funcionario da Loja",
                        Email = "*****@*****.**",
                        Phone = "3133333333",
                        CellPhone = "3188888888",
                        Address = "Rua Teste",
                        District = "Centro",
                        Number = 123,
                        City = "Belo Horizonte",
                        ZipCode = 30246130,
                        State = "MG",
                        Password = "******", //654321
                        UserType = "admin"
                    };

                db.Users.Add(cliente);
                db.Users.Add(funcionario);
                db.SaveChanges();
            }
        }
        public void AoAcessarACamadaDeAcessoADadosParaSalvarUmUsuarioValido_DeveSalvarOUsuarioERetornarVerdadeiro()
        {
            var user = new User
            {
                Name = "Daniel Silva Moreira",
                Email = "*****@*****.**",
                Phone = "3133333333",
                CellPhone = "3188888888",
                Address = "Rua Teste",
                Number = 123,
                District = "Centro",
                City = "Belo Horizonte",
                ZipCode = 30246130,
                State = "MG",
                Password = "******",
                UserType = "user"
            };

            var auxContext = new LivrariaTDDContext();

            var mockContext = new LivrariaTDDContext();

            _repository = new AccountRepository(mockContext);

            var countAntes = auxContext.Users.Count();

            var result = _repository.SaveUser(user);

            var countDepois = auxContext.Users.Count();

            Assert.True(result);
            Assert.AreEqual(2, countAntes);
            Assert.AreEqual(3, countDepois);
        }
        public void AoAcessarACamadaDeAcessoADadosParaSalvarUmUsuarioInvalido_NaoDeveSalvarOUsuarioERetonarFalso()
        {
            var user = new User
            {
                Name = "",
                Email = "",
                Phone = "",
                CellPhone = "",
                Address = "",
                Number = 0,
                District = "",
                City = "",
                ZipCode = 0,
                State = "",
                Password = "",
                UserType = ""
            };

            var auxContext = new LivrariaTDDContext();

            var mockContext = new LivrariaTDDContext();

            _repository = new AccountRepository(mockContext);

            var countAntes = auxContext.Users.Count();

            var result = _repository.SaveUser(user);

            var countDepois = auxContext.Users.Count();

            Assert.False(result);
            Assert.AreEqual(2, countAntes);
            Assert.AreEqual(2, countDepois);
        }
 public bool SaveUser(User user)
 {
     return _repository.SaveUser(user);
 }