예제 #1
0
        public void TestarProduto()
        {
            //arrange
            var novoProduto = new ProdutoDTO("Celuar", 1500);
            var dataAtual   = new DateTime(2016, 03, 16);

            //action
            IBaseBusiness negocioProduto = null;

            if (dataAtual.ToString("ddMM") == "1203")
            {
                negocioProduto = new DescontoNatalBusiness();
            }
            else if (dataAtual.ToString("ddMM") == "1103")
            {
                negocioProduto = new DescontoNamoradosBusiness();
            }
            else
            {
                negocioProduto = new DescontoNullObjectBusiness();
            }


            //assert
            var novoValor = novoProduto.Valor;

            Assert.AreEqual(1500, novoValor);
        }
예제 #2
0
        public override bool Login(string user, string password)
        {
            this._loginBusiness = InstanceFactory.GetImplementation<IBaseBusiness<Customer>>();
            var customerFound = this._loginBusiness.SelectSingle(
                w => w.User == user && w.Password == MD5Util.GetHash(password)
            );

            return customerFound != null && customerFound.Id > 0;
        }
        public void Testar_Produto()
        {
            var novoPRoduto = new ProdutoDTO();

            novoPRoduto.Codigo = 1;
            novoPRoduto.Nome   = "Rexona ROllon";
            novoPRoduto.Valor  = 99.20M;

            var           dataAtual      = new DateTime(2016, 03, 12);
            IBaseBusiness negocioProduto = null;

            if (dataAtual.ToString("ddMM") == "1206")
            {
                negocioProduto = new DescontoNamoradoBusiness();
            }
            else if (dataAtual.ToString("ddMM") == "2512")
            {
                negocioProduto = new DescontoNatalBusiness();
            }
            else
            {
                negocioProduto = new DescontoNullObjectBusiness();
            }
            //Temos um padrao do Martin Fowler (2009)
            //Padrao Null REference
            //A proposta do padrao 'e evitar tomar erros de NULL REFERENCE
            //Erros de NAO inicializacao de OBJETOS (Faltou dar new)
            //Erros sao pesados para a maquina CLR
            //Para nao dar erro de null, criamos um objeto default
            //com valores default
            //Uma classe qualquer, fazia so para dar erro de  null reference
            //Aonte tiver IF variavel == null ou TRY CATCH de NULL REFERENCE
            var novoValor = negocioProduto.CalcularDesconto(novoPRoduto.Valor);

            //Quando criamos uma variavel PAI (Super Tipo)
            //IBaseBUsiness, podemos dar NEW em qualquer classe filha
            //Nas 3 classes de negocio, as 3 classes que herdam dela
            //Principio de Substituicao de Liskov (soLid)
            //Podemos inicializar qualquer filho dentro de um pai
            //BEM Flexivel, ABSTRAIDO
            //Um pai pode ser trocado por um filho
        }
예제 #4
0
 public UserController(IBaseBusiness <User> userBusiness)
 {
     this.userBusiness = userBusiness;
 }
예제 #5
0
 public UserController(IBaseBusiness<User> userBusiness)
 {
     this.userBusiness = userBusiness;
 }
예제 #6
0
 public ProductController(IBaseBusiness <Product> productBusiness)
 {
     this.productBusiness = productBusiness;
 }
예제 #7
0
 public StoreController(IBaseBusiness<Store> storeBusiness)
 {
     this.storeBusiness = storeBusiness;
 }
예제 #8
0
 public Customer2Controller(IBaseBusiness<Customer> businessCustomer)
 {
     this._businessCustomer = businessCustomer;
 }
예제 #9
0
 public StoreController(IBaseBusiness <Store> storeBusiness)
 {
     this.storeBusiness = storeBusiness;
 }
예제 #10
0
 public FeedbackController(IBaseBusiness <Feedback> feedbackBusiness)
 {
     this.feedbackBusiness = feedbackBusiness;
 }
예제 #11
0
 public SaleController(IBaseBusiness<Sale> saleBusiness, IBaseBusiness<Product> productBusiness)
 {
     this.saleBusiness = saleBusiness;
     this.productBusiness = productBusiness;
 }
예제 #12
0
 public TokenController()
 {
     _iBaseBusiness = new BaseBusiness <UserToken>();
 }
 //Aplicamos o padrao IoC, a classe AmigoBusiness
 //Vai vir inicializada de fora
 public AmigoController(IBaseBusiness <AmigoDTO> negocio_)
 {
     _negocio = negocio_;
 }
예제 #14
0
 public ProductController(IBaseBusiness<Product> productBusiness)
 {
     this.productBusiness = productBusiness;
 }
예제 #15
0
 public SaleController(IBaseBusiness <Sale> saleBusiness, IBaseBusiness <Product> productBusiness)
 {
     this.saleBusiness    = saleBusiness;
     this.productBusiness = productBusiness;
 }
예제 #16
0
 public FeedbackController(IBaseBusiness<Feedback> feedbackBusiness)
 {
     this.feedbackBusiness = feedbackBusiness;
 }