Selector/Selector.Tests/Watcher/WatcherCollection.cs

56 lines
1.4 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using Xunit;
using Moq;
using FluentAssertions;
using SpotifyAPI.Web;
using Selector;
using System.Threading.Tasks;
namespace Selector.Tests
{
public class WatcherCollectionTests
{
[Fact]
public void Count()
{
var watchCollection = new WatcherCollection();
var watcherMock = new Mock<IWatcher>();
watchCollection.Add(watcherMock.Object);
watchCollection.Add(watcherMock.Object);
watchCollection.Add(watcherMock.Object);
watchCollection.Count.Should().Be(3);
}
[Fact]
public void StartAndStop()
{
var watchCollection = new WatcherCollection();
var watcherMock = new Mock<IWatcher>();
watchCollection.Add(watcherMock.Object);
watchCollection.Count.Should().Be(1);
watchCollection.Start();
watchCollection.IsRunning.Should().BeTrue();
watchCollection.First().IsRunning.Should().BeTrue();
watchCollection.Running.Count().Should().Be(1);
watchCollection.Stop();
watchCollection.IsRunning.Should().BeFalse();
watchCollection.First().IsRunning.Should().BeFalse();
watchCollection.Running.Count().Should().Be(0);
watchCollection.TokenSources.First().IsCancellationRequested.Should().BeTrue();
}
}
}