Пример #1
0
 public void CreateNosrtFile(SubtitleStateEntry entry)
 {
     string fileName = CreateSubtitleFileName(entry.File, ".nosrt");
     using (var writer = _fileSystem.File.CreateText(fileName))
     {
         writer.Write("No subtitle available");
     }
 }
        public void Update_RemovedEntries_RemoveMissingItems(
            SubtitleStateEntry[] entries,
            SubtitleState state)
        {
            var failedFiles = entries.Skip(1).Select(e => e.File);
            state.Entries.Clear();
            state.Entries.AddRange(entries);

            state.Update(failedFiles);

            Assert.That(state.Entries.Select(e => e.File), Is.EquivalentTo(failedFiles));
        }
        public void Update_NewEntries_AddNewEntries(
            SubtitleStateEntry[] newEntries,
            SubtitleStateEntry[] existingEntries,
            SubtitleState state)
        {
            var failedFiles = existingEntries.Concat(newEntries).Select(e => e.File);
            state.Entries.Clear();
            state.Entries.AddRange(existingEntries);

            state.Update(failedFiles);

            Assert.That(state.Entries.Select(e => e.File), Is.EquivalentTo(failedFiles));
        }
        public void Update_ExistingEntriesMatching_LeaveExistingItemsUnchanged(
            SubtitleStateEntry[] entries,
            SubtitleState state
            )
        {
            var failedFiles = entries.Select(e => e.File);
            state.Entries.Clear();
            state.Entries.AddRange(entries);

            state.Update(failedFiles);

            Assert.That(entries.Select(e => new { e.File, e.Timestamp }),
                Is.EquivalentTo(state.Entries.Select(e => new { e.File, e.Timestamp })));
        }
        public void Cleanup_EntriesAreOld_RemoveAllEntriesOlderThanGiveupdays(
            int giveupdays,
            Action<SubtitleStateEntry> removalAction,
            SubtitleStateEntry[] entries,
            SubtitleState state)
        {
            var toBeRemoved = entries.Take(2);
            toBeRemoved.ForEach(e => e.Timestamp = DateTime.Now.AddDays(-giveupdays - 1));
            var toKeep = entries.Skip(2);
            toKeep.ForEach(e => e.Timestamp = DateTime.Now);
            state.Entries.Clear();
            state.Entries.AddRange(entries);

            state.Cleanup(giveupdays, removalAction);

            Assert.That(state.Entries.Select(s => s.File), Is.EquivalentTo(toKeep.Select(s => s.File)));
        }