public void IndexacaoPersonalizada()
        {
            var p = ProdutoContainerPersonalizado.GetInstance();

            Assert.IsNotNull(p);

            int qtdCargas = p.CargasRealizadas;

            for (int i = 0; i < 6; i++)
            {
                Assert.AreEqual(1, p.ObterPorId(1).Id);
                Assert.AreEqual(2, p.ObterPorId(2).Id);
                Assert.AreEqual(3, p.ObterPorId(3).Id);

                Assert.AreEqual(1, p.ObterPorNome("Produto 1").Id);
                Assert.AreEqual(2, p.ObterPorNome("Produto 2").Id);
                Assert.AreEqual(3, p.ObterPorNome("Produto 3").Id);

                Assert.IsNull(p.ObterPorId(10));
                Assert.IsNull(p.ObterPorNome("XX"));

                Assert.AreEqual(3, p.ObterTodos().Count);

                Thread.Sleep(1000);
            }

            Assert.AreEqual(qtdCargas + 3, p.CargasRealizadas);
        }
示例#2
0
        public static ProdutoContainerPersonalizado GetInstance()
        {
            if (instanciaUnica == null)
            {
                instanciaUnica = new ProdutoContainerPersonalizado();
            }

            return((ProdutoContainerPersonalizado)instanciaUnica);
        }
        public void DiferentesContainersComMesmoTipoDeDado()
        {
            var p1 = ProdutoContainer.GetInstance();
            var p2 = ProdutoContainer.GetInstance();

            Assert.AreEqual(9, p2.ObterTodos().Count);

            //Tipos diferentes de container podem armazenar o mesmo tipo de dado sem que um interfira no outro.
            var p21 = ProdutoContainerPersonalizado.GetInstance();
            var p22 = ProdutoContainerPersonalizado.GetInstance();

            Assert.AreEqual(3, p22.ObterTodos().Count);
            Assert.AreEqual(9, p2.ObterTodos().Count);

            Assert.AreEqual(p1, p2);
            Assert.IsTrue(p1 == p2);

            Assert.AreEqual(p21, p22);
            Assert.IsTrue(p21 == p22);
        }