Пример #1
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            torre.Processar();
            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.FinalizadoSucesso);
        }
Пример #2
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            int quantidadePinos = 3;
            var torre           = new global::Domain.TorreHanoi.TorreHanoi(quantidadePinos, _mockLogger.Object);

            Assert.IsNotNull(torre);

            Assert.IsNotNull(torre.Origem);
            Assert.AreEqual(torre.Origem.Discos.Count, quantidadePinos);

            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);

            Assert.IsNotNull(torre.Destino);
            Assert.AreEqual(torre.Destino.Discos.Count, 0);

            torre.Processar();

            Assert.IsNotNull(torre.Origem);
            Assert.AreEqual(torre.Origem.Discos.Count, 0);

            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);

            Assert.IsNotNull(torre.Destino);
            Assert.AreEqual(torre.Destino.Discos.Count, quantidadePinos);

            var quantidadeMovimentos = Math.Pow(2, quantidadePinos) - 1;

            Assert.AreEqual(torre.PassoAPasso.Count, quantidadeMovimentos);
        }
Пример #3
0
        public void Construtor_Deve_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Id);
            Assert.AreNotEqual(torre.Id, Guid.Empty);

            Assert.IsNotNull(torre.Discos);
            Assert.IsTrue(torre.Discos.Count > 0);

            Assert.IsNotNull(torre.Origem);
            Assert.IsNotNull(torre.Intermediario);
            Assert.IsNotNull(torre.Destino);
            Assert.IsNotNull(torre.PassoAPasso);

            Assert.IsFalse(torre.Intermediario.Discos.Count > 0);
            Assert.IsFalse(torre.Destino.Discos.Count > 0);
            Assert.IsFalse(torre.PassoAPasso.Count > 0);

            Assert.AreEqual(torre.Origem.Tipo, global::Domain.TorreHanoi.TipoPino.Origem);
            Assert.AreEqual(torre.Intermediario.Tipo, global::Domain.TorreHanoi.TipoPino.Intermediario);
            Assert.AreEqual(torre.Destino.Tipo, global::Domain.TorreHanoi.TipoPino.Destino);

            Assert.IsTrue(torre.DataCriacao >= DateTime.Today);
            Assert.IsNull(torre.DataFinalizacao);
        }
        public void Construtor_Deve_Retornar_Sucesso()
        {
            //Assert.Fail();
            var torreHanoi = new global::Domain.TorreHanoi.TorreHanoi(6, _mockLogger.Object);

            Assert.IsNotNull(torreHanoi);
            Assert.AreEqual(torreHanoi.Origem.Discos.Count, 6);
        }
        public void Processar_Deverar_Retornar_Erro()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(0, _mockLogger.Object);

            torre.Processar();

            Assert.IsTrue(torre.Status == global::Domain.TorreHanoi.TipoStatus.FinalizadoErro);
        }
Пример #6
0
        public void Construtor_Deve_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.AreEqual(torre.Torre1.Discos.Count, 3);
            Assert.AreEqual(torre.Torre2.Discos.Count, 0);
            Assert.AreEqual(torre.Torre3.Discos.Count, 0);
        }
Пример #7
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre             = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);
            int totalInicioDiscos = torre.Origem.Discos.Count;

            torre.Processar();
            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.FinalizadoSucesso);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
            Assert.AreEqual(torre.Origem.Discos.Count, 0);
            Assert.AreEqual(torre.Destino.Discos.Count, totalInicioDiscos);
        }
Пример #8
0
        public void AdicionarDisco_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Torre2);
            Assert.AreEqual(torre.Torre2.Discos.Count, 0);

            torre.Torre2.AdicionarDisco(torre.Discos.First());

            Assert.AreEqual(torre.Torre2.Discos.Count, 1);
        }
Пример #9
0
        public void RemoverDisco_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Torre1);
            Assert.AreEqual(torre.Torre1.Discos.Count, 3);

            torre.Torre1.RemoverDisco();

            Assert.AreEqual(torre.Torre1.Discos.Count, 2);
        }
Пример #10
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);
            var ordemDiscosEsperada = torre.Discos.OrderByDescending(x => x.Id);

            torre.Processar();

            Assert.AreEqual(torre.Torre1.Discos.Count, 0);
            Assert.AreEqual(torre.Torre2.Discos.Count, 0);
            Assert.AreEqual(torre.Torre3.Discos.Count, 3);
            Assert.IsTrue(ordemDiscosEsperada.SequenceEqual(torre.Discos));
        }
Пример #11
0
        public void Construtor_Deve_Retornar_Sucesso()
        {
            const int qtdDiscosOrigem = 3;
            const int qtdDiscosDemais = 0;

            var torre = new global::Domain.TorreHanoi.TorreHanoi(qtdDiscosOrigem, _mockLogger.Object);

            Assert.IsNotNull(torre);

            Assert.AreEqual(torre.Origem.Discos.Count, qtdDiscosOrigem);
            Assert.AreEqual(torre.Intermediario.Discos.Count, qtdDiscosDemais);
            Assert.AreEqual(torre.Destino.Discos.Count, qtdDiscosDemais);
            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.Pendente);
        }
Пример #12
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);

            torre.Processar();

            Assert.IsTrue(torre.Status == TipoStatus.FinalizadoSucesso);

            Assert.AreEqual(torre.Origem.Discos.Count, 0);
            Assert.AreEqual(torre.Destino.Discos.Count, 3);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
        }
Пример #13
0
        public void Construtor_Deve_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.PassoAPasso);
            Assert.AreEqual(torre.Discos.Count, 3);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
            Assert.AreEqual(torre.Origem.Discos.Count, 3);
            Assert.AreEqual(torre.Destino.Discos.Count, 0);
            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.Pendente);
            Assert.AreNotEqual(torre.DataCriacao, new DateTime());
            Assert.AreNotEqual(torre.Id, new Guid());
        }
Пример #14
0
        public void SetUp()
        {
            _mockLogger = new Mock <ILogger>();
            _mockLogger.Setup(s => s.Logar(It.IsAny <string>(), It.IsAny <TipoLog>()));

            _torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            var mockCacheManager = new Mock <ICacheManager>();

            mockCacheManager.Setup(s => s.Set(It.IsAny <string>()));
            mockCacheManager.Setup(s => s.Get(It.IsAny <string>())).Returns(CriarMockGetCacheManager);

            _repository = new QueueRepository(mockCacheManager.Object);
        }
Пример #15
0
        public void AdicionarDisco_Deve_Retornar_Erro()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);

            torre.Intermediario.AdicionarDisco(torre.Discos.Last());

            Assert.AreEqual(torre.Intermediario.Discos.Count, 1);

            torre.Intermediario.AdicionarDisco(torre.Discos.First());
        }
Пример #16
0
        public void Construtor_Deve_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Destino);
            Assert.IsNotNull(torre.Origem);
            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Origem.Tipo, global::Domain.TorreHanoi.TipoPino.Origem);
            Assert.AreEqual(torre.Destino.Tipo, global::Domain.TorreHanoi.TipoPino.Destino);
            Assert.AreEqual(torre.Intermediario.Tipo, global::Domain.TorreHanoi.TipoPino.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
            Assert.AreEqual(torre.Destino.Discos.Count, 0);
            Assert.AreEqual(torre.Origem.Discos.Count, 3);
        }
Пример #17
0
        public void Processar_Deve_Retornar_Sucesso()
        {
            var qtdeDiscos = 3;
            var qtdePassos = Math.Pow(2, qtdeDiscos) - 1;

            var torre = new global::Domain.TorreHanoi.TorreHanoi(qtdeDiscos, _mockLogger.Object);

            torre.Processar();

            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.FinalizadoSucesso);
            Assert.AreEqual(torre.Discos.Count, qtdeDiscos);
            Assert.AreEqual(qtdePassos, torre.PassoAPasso.Count);
            Assert.AreNotEqual(torre.DataCriacao, new DateTime());
            Assert.AreNotEqual(torre.Id, new Guid());
        }
Пример #18
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var totalDiscos     = 3;
            var passosEsperados = Math.Pow(2, totalDiscos) - 1;
            var torre           = new global::Domain.TorreHanoi.TorreHanoi(totalDiscos, _mockLogger.Object);

            torre.Processar();

            Assert.AreEqual(torre.Status, global::Domain.TorreHanoi.TipoStatus.FinalizadoSucesso);
            Assert.IsTrue(torre.DataFinalizacao > torre.DataCriacao);
            Assert.IsFalse(torre.Origem.Discos.Count > 0);
            Assert.IsFalse(torre.Intermediario.Discos.Count > 0);
            Assert.AreEqual(torre.Destino.Discos.Count, totalDiscos);
            Assert.IsNotNull(torre.PassoAPasso);
            Assert.AreEqual(torre.PassoAPasso.Count, passosEsperados);
        }
Пример #19
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Discos);
            Assert.IsNotNull(torre.Destino);
            Assert.IsNotNull(torre.Origem);
            Assert.IsNotNull(torre.Intermediario);

            torre.Processar();

            Assert.AreEqual(torre.Destino.Discos.Count, 3);
            Assert.AreEqual(torre.Origem.Discos.Count, 0);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);

            Assert.AreEqual(((global::Domain.TorreHanoi.Disco)torre.Destino.Discos.ToArray().GetValue(0)).Id, 1);
            Assert.AreEqual(((global::Domain.TorreHanoi.Disco)torre.Destino.Discos.ToArray().GetValue(1)).Id, 2);
            Assert.AreEqual(((global::Domain.TorreHanoi.Disco)torre.Destino.Discos.ToArray().GetValue(2)).Id, 3);
        }
Пример #20
0
        public void Processar_Deverar_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(3, _mockLogger.Object);

            Assert.IsNotNull(torre);
            Assert.IsNotNull(torre.Origem);
            Assert.AreEqual(torre.Origem.Discos.Count, 3);
            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
            Assert.IsNotNull(torre.Destino);
            Assert.AreEqual(torre.Destino.Discos.Count, 0);

            torre.Processar();

            Assert.IsNotNull(torre.Origem);
            Assert.AreEqual(torre.Origem.Discos.Count, 0);
            Assert.IsNotNull(torre.Intermediario);
            Assert.AreEqual(torre.Intermediario.Discos.Count, 0);
            Assert.IsNotNull(torre.Destino);
            Assert.AreEqual(torre.Destino.Discos.Count, 3);

            CollectionAssert.AreEqual(torre.Destino.Discos.Select(d => d.Id).ToArray(), new int[] { 1, 2, 3 });
        }
        public void Construtor_Deve_Retornar_Sucesso()
        {
            var torre = new global::Domain.TorreHanoi.TorreHanoi(4, _mockLogger.Object);

            Assert.IsTrue(torre.Id != Guid.Empty);
        }