public void InMemoryStorage_After1000CallsFromApi_ContainsElementsInTheSameOrderAsTheyCameFromApi() { // Arrange var repo = new DeviceLogsRepoMock(); var countOfCalls = 1000; new LogsStorageWriter(_helperCollection, repo, _appSettingsModifier).RunLogsChecker(CancellationToken.None); var copyOfHelperCollectionAsList = new List <DeviceLog>(); // Act var taskWriters = Enumerable.Range(1, countOfCalls).Select(x => { return(Task.Run(() => { var log = new DeviceLog { DateStamp = DateTime.Now, PluginName = "SamsungDPlugin", Id = x }; lock (_locker) { _helperCollection.AddLog(log); copyOfHelperCollectionAsList.Add(log); } })); }).ToArray(); Task.WaitAll(taskWriters); // full the collection of collections Thread.Sleep(3000); var isEqual = Enumerable.SequenceEqual(repo.logsInMemory, copyOfHelperCollectionAsList); //Assert Assert.True(isEqual); }
public void HelperQueue_AfterWrite_IsEmpty() { // Arrange var repo = new DeviceLogsRepoMock(); new LogsStorageWriter(_helperCollection, repo, _appSettingsModifier).RunLogsChecker(CancellationToken.None); var countOfCalls = 1000; // Act EmulateApiCalls(countOfCalls); //Assert Assert.Empty(_helperCollection._helperQueue); }
public void HelperCollection_AfterWrite_ContainsEmptyLists() { // Arrange var repo = new DeviceLogsRepoMock(); new LogsStorageWriter(_helperCollection, repo, _appSettingsModifier).RunLogsChecker(CancellationToken.None); var countOfCalls = 1000; // Act EmulateApiCalls(countOfCalls); bool res = _helperCollection._allCollections.All(x => !x.Any()); //Assert Assert.True(res); }
public void InMemoryStorage_After1000CallsFromApi_Contains1000Elements() { // Arrange var repo = new DeviceLogsRepoMock(); new LogsStorageWriter(_helperCollection, repo, _appSettingsModifier).RunLogsChecker(CancellationToken.None); var countOfCalls = 1000; // Act EmulateApiCalls(countOfCalls); var factCountInMemory = repo.logsInMemory.Count; //Assert Assert.Equal(countOfCalls, factCountInMemory); }