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); }
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); }