public void TypesOfStorage_CorrectGettingElementsFromCacheAndDataBase()
{
var dataBase = GenerateDataBaseOfRandomStringElements(3);
var cache = new Cache<string>(2, dataBase);
var listOfId = dataBase.GetListOfId();
var elements = new List<Element<string>>();
foreach (var identifier in listOfId)
elements.Add(cache.GetElementById(identifier));
var expectedTypeStorageOfFirstElement = TypesOfStorage.DataBase;
var expectedTypeStorageOfSecondElement = TypesOfStorage.DataBase;
var expectedTypeStorageOfThirdElement = TypesOfStorage.DataBase;
var actualTypeStorageOfFirstElement = elements[0].TypeOfStorage;
var actualTypeStorageOfSecondElement = elements[1].TypeOfStorage;
var actualTypeStorageOfThirdElement = elements[2].TypeOfStorage;
Assert.AreEqual(expectedTypeStorageOfFirstElement, actualTypeStorageOfFirstElement, "First Element From Data Base");
Assert.AreEqual(expectedTypeStorageOfSecondElement, actualTypeStorageOfSecondElement, "Second Element From Data Base");
Assert.AreEqual(expectedTypeStorageOfThirdElement, actualTypeStorageOfThirdElement, "Third Element From Data Base");
RepeatedRequestToLastTwoElements(cache, listOfId);
expectedTypeStorageOfFirstElement = TypesOfStorage.DataBase;
expectedTypeStorageOfSecondElement = TypesOfStorage.Cache;
expectedTypeStorageOfThirdElement = TypesOfStorage.Cache;
actualTypeStorageOfFirstElement = elements[0].TypeOfStorage;
actualTypeStorageOfSecondElement = elements[1].TypeOfStorage;
actualTypeStorageOfThirdElement = elements[2].TypeOfStorage;
Assert.AreEqual(expectedTypeStorageOfFirstElement, actualTypeStorageOfFirstElement, "First Element From Data Base");
Assert.AreEqual(expectedTypeStorageOfSecondElement, actualTypeStorageOfSecondElement, "Second Element From Cache");
Assert.AreEqual(expectedTypeStorageOfThirdElement, actualTypeStorageOfThirdElement, "Third Element From Cache");
}