Exemple #1
0
        public void RemoverFoto_AlbumVazio_DomainException()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();
            var foto    = new Foto(new Uri(URL_PNG_VALIDA));

            // Act
            // Assert
            Assert.Throws <DomainException>(() => anuncio.RemoverFoto(foto));
        }
Exemple #2
0
        public void Publicar_AnuncioPendente_AnuncioPublicado()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            // Act
            anuncio.Publicar();

            // Assert
            Assert.True(anuncio.Status.EhPublicado());
        }
Exemple #3
0
        public void Adicionar_AdicionarFotoDiretamentePeloAlbumFoto_NaoDeveAlterarOAlbum()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            // Act
            anuncio.Fotos.Adicionar(new Foto(new Uri(URL_PNG_VALIDA + "1.png")));

            // Assert
            Assert.True(anuncio.Fotos.Vazio);
        }
Exemple #4
0
        public void RemoverTodasFotos_AlbumSemFotos_AlbumVazioNaoLancaExcecao()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            // Act
            anuncio.RemoverTodasFotos();

            // Assert
            Assert.True(anuncio.Fotos.Vazio);
        }
Exemple #5
0
        public void Publicar_AnuncioJaPublicado_DomainException()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            anuncio.Publicar();

            // Act
            // Assert
            Assert.Throws <DomainException>(() => anuncio.Publicar());
        }
Exemple #6
0
        public void AdicionarFoto_AdicionarPrimeiraFoto_FotoDefinidaComoCapa()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();
            var foto    = new Foto(new Uri(URL_PNG_VALIDA));

            // Act
            anuncio.AdicionarFoto(foto);

            // Assert
            Assert.Equal(foto, anuncio.Fotos.Capa);
        }
Exemple #7
0
        public void RemoverFoto_RemoverFotoQueNaoEhDoAlbum_DomainException()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();
            var foto    = new Foto(new Uri(URL_PNG_VALIDA));
            var foto2   = new Foto(new Uri(URL_PNG_VALIDA + "2.png"));

            // Act
            anuncio.AdicionarFoto(foto);

            // Assert
            Assert.Throws <DomainException>(() => anuncio.RemoverFoto(foto2));
        }
Exemple #8
0
        public void MarcarComoVendido_AnuncioAindaNaoVendido_AnuncioMarcadoComoVendido()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            anuncio.Publicar();
            // Act
            anuncio.Vender();

            // Assert
            Assert.Equal(Status.Vendido, anuncio.Status);
            Assert.Equal(DateTime.Now.Date, anuncio.DataDaVenda.Date);
        }
Exemple #9
0
        public void Limpar_LimparFotoDiretamentePeloAlbumFoto_NaoDeveAlterarOAlbum()
        {
            // Arrange
            var anuncio      = AnuncioFakeFactory.CriarAnuncioValido();
            var primeiraFoto = new Foto(new Uri(URL_PNG_VALIDA));

            anuncio.AdicionarFoto(primeiraFoto);

            // Act
            anuncio.Fotos.Limpar();

            // Assert
            Assert.False(anuncio.Fotos.Vazio);
        }
Exemple #10
0
        public void RemoverFoto_AlbumComUmaFotoAoRemover_AlbumVazio()
        {
            // Arrange
            var anuncio      = AnuncioFakeFactory.CriarAnuncioValido();
            var primeiraFoto = new Foto(new Uri(URL_PNG_VALIDA));

            anuncio.AdicionarFoto(primeiraFoto);

            // Act
            anuncio.RemoverFoto(primeiraFoto);

            // Assert
            Assert.True(anuncio.Fotos.Vazio);
        }
Exemple #11
0
        public void Construtor_DadosValido_ObjetoCriado()
        {
            // Arrange
            // Act
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            // Assert
            Assert.Equal("Titulo", anuncio.Titulo);
            Assert.Equal("Descricao", anuncio.Descricao);
            Assert.Equal(10.0M, anuncio.Preco);
            Assert.Equal(Status.Pendente, anuncio.Status);
            Assert.Equal(CondicaoUso.Usado, anuncio.CondicaoUso);
            Assert.Equal(1, anuncio.DomainEvents.Count);
        }
Exemple #12
0
        public void AdicionarFoto_AdicionarSegundaFoto_APrimeiraFotoContinuaComoCapa()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();
            var foto1   = new Foto(new Uri(URL_PNG_VALIDA));
            var foto2   = new Foto(new Uri(URL_PNG_VALIDA + "2.png"));

            anuncio.AdicionarFoto(foto1);

            // Act
            anuncio.AdicionarFoto(foto2);

            // Assert
            Assert.Equal(foto1, anuncio.Fotos.Capa);
        }
Exemple #13
0
        public void AdicionarFoto_AdicionarSetimaFoto_DomainException()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "1.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "2.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "3.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "4.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "5.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "6.png")));

            // Act
            // Assert
            Assert.Throws <DomainException>(() => anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "7.png"))));
        }
Exemple #14
0
        public void RemoverFoto_AlbumComDuasFotosAoRemoverPrimeiraFoto_SegundaFotoSeTornaCapa()
        {
            // Arrange
            var anuncio      = AnuncioFakeFactory.CriarAnuncioValido();
            var primeiraFoto = new Foto(new Uri(URL_PNG_VALIDA));
            var segundaFoto  = new Foto(new Uri(URL_PNG_VALIDA + "2.png"));

            anuncio.AdicionarFoto(primeiraFoto);
            anuncio.AdicionarFoto(segundaFoto);

            // Act

            anuncio.RemoverFoto(primeiraFoto);

            // Assert
            Assert.Equal(segundaFoto, anuncio.Fotos.Capa);
        }
Exemple #15
0
        public void Excluir_AnuncioEmStatusQueNaoPodemSerExcluido_DomainException()
        {
            foreach (var status in Status.GetAll())
            {
                if (status.PodeSerExcluido())
                {
                    continue;
                }

                // Arrange
                var anuncio = AnuncioFakeFactory.CriarAnuncioPorStatus(status);

                // Act
                // Assert
                Assert.Throws <DomainException>(() => anuncio.Excluir());
            }
        }
Exemple #16
0
        public void AdicionarFoto_AdicionarSextaFoto_AlbumCompleto()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "1.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "2.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "3.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "4.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "5.png")));

            // Act
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "6.png")));

            // Assert
            Assert.True(anuncio.Fotos.Completo);
        }
Exemple #17
0
        public void RemoverTodasFotos_AlbumComFotos_AlbumVazio()
        {
            // Arrange
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "1.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "2.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "3.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "4.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "5.png")));
            anuncio.AdicionarFoto(new Foto(new Uri(URL_PNG_VALIDA + "6.png")));

            // Act
            anuncio.RemoverTodasFotos();

            // Assert
            Assert.True(anuncio.Fotos.Vazio);
        }
Exemple #18
0
        public void Excluir_AnuncioEmStatusQuePodemSerExcluido_AnuncioExcluido()
        {
            foreach (var status in Status.GetAll())
            {
                if (!status.PodeSerExcluido())
                {
                    continue;
                }

                // Arrange
                var anuncio = AnuncioFakeFactory.CriarAnuncioPorStatus(status);

                // Act
                anuncio.Excluir();

                // Assert
                Assert.True(anuncio.Status.EhExcluido());
            }
        }
        public static Anuncio CriarAnuncioPorStatus(Status status)
        {
            var anuncio = AnuncioFakeFactory.CriarAnuncioValido();

            if (status.EhPublicado())
            {
                anuncio.Publicar();
            }
            else if (status.EhRejeitado())
            {
                anuncio.Rejeitar();
            }
            else if (status.EhVendido())
            {
                anuncio.Publicar();
                anuncio.Vender();
            }
            else if (status.EhExcluido())
            {
                anuncio.Excluir();
            }

            return(anuncio);
        }