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