using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMoq; using Gallio.Framework; using MbUnit.Framework; using MbUnit.Framework.ContractVerifiers; using Moq; using NzbDrone.Core.Providers; using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Test { [TestFixture] public class RootDirProviderTest { [Test] public void GetRootDirs() { //Setup var sonicRepo = MockLib.GetEmptyRepository(); sonicRepo.Add(new RootDir { Path = @"C:\TV" }); sonicRepo.Add(new RootDir { Path = @"C:\TV2" }); var mocker = new AutoMoqer(); mocker.GetMock() .Setup(f => f.All()) .Returns(sonicRepo.All); //Act var result = mocker.Resolve().GetAll(); //Assert Assert.AreEqual(result.Count, 2); } [Test] public void AddRootDir() { //Setup var mocker = new AutoMoqer(); mocker.SetConstant(MockLib.GetEmptyRepository()); string path = @"C:\TV\"; //Act var rootDirProvider = mocker.Resolve(); rootDirProvider.Add(new RootDir{ Path = path }); //Assert var rootDirs = rootDirProvider.GetAll(); Assert.IsNotEmpty(rootDirs); Assert.Count(1, rootDirs); Assert.AreEqual(path, rootDirs.First().Path); } [Test] public void UpdateRootDir() { //Setup var mocker = new AutoMoqer(); mocker.SetConstant(MockLib.GetEmptyRepository()); string path = @"C:\TV2"; //Act var rootDirProvider = mocker.Resolve(); rootDirProvider.Add(new RootDir { Path = @"C:\TV" }); rootDirProvider.Update(new RootDir { Id = 1, Path = path }); //Assert var rootDirs = rootDirProvider.GetAll(); Assert.IsNotEmpty(rootDirs); Assert.Count(1, rootDirs); Assert.AreEqual(path, rootDirs.First().Path); } [Test] public void RemoveRootDir() { //Setup var mocker = new AutoMoqer(); mocker.SetConstant(MockLib.GetEmptyRepository()); string path = @"C:\TV2"; //Act var rootDirProvider = mocker.Resolve(); rootDirProvider.Add(new RootDir { Path = @"C:\TV" }); rootDirProvider.Remove(1); //Assert var rootDirs = rootDirProvider.GetAll(); Assert.Count(0, rootDirs); } [Test] public void GetRootDir() { //Setup var mocker = new AutoMoqer(); mocker.SetConstant(MockLib.GetEmptyRepository()); int id = 1; string path = @"C:\TV"; //Act var rootDirProvider = mocker.Resolve(); rootDirProvider.Add(new RootDir { Id = id, Path = path }); //Assert var rootDir = rootDirProvider.GetRootDir(id); Assert.AreEqual(1, rootDir.Id); Assert.AreEqual(path, rootDir.Path); } } }