public void GetCharacterTest() { CharacterDataCache.ReplaceAlgorithm rep = (x, y) => x.AccessTimes < y.AccessTimes; ICharacterDataSource ds = new CharacterDataCache(2, rep); Character c1 = ds.GetCharacter("Stark, Ned"); Character c2 = ds.GetCharacter("Lannister, Tyrion"); Assert.IsNotNull(c1,"Ned Stark encontrado"); Assert.IsNotNull(c1, "Tyrion Lannister encontrado"); ds.GetCharacter("Lannister, Tyrion"); Assert.AreEqual(ds.CreatedCharacters, 2, "Dos objetos obtenidos del json, ya que Tyrion Lannister está en caché"); //Intentamos obtener otro personaje, al estar la cache llena debería de borrar el menos usado (Ned Stark) ds.GetCharacter("Stark, Roob"); Assert.AreEqual(ds.CreatedCharacters, 3, "Se ha creado el nuevo personaje, Roob Stark"); ds.GetCharacter("Stark, Ned"); Assert.AreEqual(ds.CreatedCharacters, 4, "Se ha creado el personaje Ned Stark porque fue reemplazado de la caché"); }
public void GetCharacterTest() { CharacterDataCache.ReplaceAlgorithm rep = (x, y) => x.LastAccess.CompareTo(y.LastAccess) > 0; ICharacterDataSource ds = new CharacterDataCache(2, rep); Character c1 = ds.GetCharacter("Stark, Ned"); System.Threading.Thread.Sleep(100); Character c2 = ds.GetCharacter("Lannister, Tyrion"); Assert.IsNotNull(c1,"Ned Stark encontrado"); Assert.IsNotNull(c1, "Tyrion Lannister encontrado"); ds.GetCharacter("Lannister, Tyrion"); Assert.AreEqual(ds.CreatedCharacters, 2, "Dos objetos obtenidos del json, ya que Tyrion Lannister está en caché"); //Intentamos obtener otro personaje //Al estar la cache llena debería de borrar el último personaje que fue accedido (Tyrion Lannister) ds.GetCharacter("Stark, Roob"); Assert.AreEqual(ds.CreatedCharacters, 3, "Se ha creado el nuevo personaje, Roob Stark"); ds.GetCharacter("Lannister, Tyrion"); Assert.AreEqual(ds.CreatedCharacters, 4, "Se ha creado el personaje Ned Stark porque fue reemplazado de la caché"); }
public void CharacterDataCacheLFUTest() { CharacterDataCache.ReplaceAlgorithm rep = (x, y) => x.AccessTimes < y.AccessTimes; ICharacterDataSource ds = new CharacterDataCache(2, rep); Assert.IsNotNull(ds); }
public void CharacterDataCacheMRUTest() { CharacterDataCache.ReplaceAlgorithm rep = (x, y) => x.LastAccess.CompareTo(y.LastAccess) > 0; ICharacterDataSource ds = new CharacterDataCache(2, rep); Assert.IsNotNull(ds); }