Added AutoMoq. Removed IHTTP Provider

pull/2/head
kay.one 14 years ago
parent 9950d9385d
commit c1bd62ae64

@ -35,6 +35,9 @@
<Reference Include="Accessibility">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="AutoMoq">
<HintPath>..\packages\AutoMoq.1.3.1.3\lib\AutoMoq.dll</HintPath>
</Reference>
<Reference Include="Castle.Core, Version=2.5.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\NzbDrone.Core\Libraries\Castle.Core.dll</HintPath>
@ -44,7 +47,24 @@
</Reference>
<Reference Include="Gallio, Version=3.2.0.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL" />
<Reference Include="MbUnit, Version=3.2.0.0, Culture=neutral, PublicKeyToken=eb9cfa67ee6ab36e, processorArchitecture=MSIL" />
<Reference Include="Moq, Version=4.0.10827.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL" />
<Reference Include="Microsoft.Practices.ServiceLocation">
<HintPath>..\packages\Unity.2.0\lib\20\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity">
<HintPath>..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Configuration">
<HintPath>..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Configuration.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Interception">
<HintPath>..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Interception.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Interception.Configuration">
<HintPath>..\packages\Unity.2.0\lib\20\Microsoft.Practices.Unity.Interception.Configuration.dll</HintPath>
</Reference>
<Reference Include="Moq, Version=4.0.10827.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
<HintPath>..\packages\Moq.4.0.10827\lib\NET40\Moq.dll</HintPath>
</Reference>
<Reference Include="Ninject">
<HintPath>..\packages\Ninject.2.2.1.0\lib\.NetFramework 4.0\Ninject.dll</HintPath>
</Reference>

@ -5,6 +5,7 @@ using System.Linq;
using System.ServiceModel.Syndication;
using System.Text;
using System.Xml;
using AutoMoq;
using Gallio.Framework;
using MbUnit.Framework;
using MbUnit.Framework.ContractVerifiers;
@ -27,26 +28,22 @@ namespace NzbDrone.Core.Test
public void Download_feed_test()
{
var kernel = new MockingKernel();
var mocker = new AutoMoqer();
var xmlReader = XmlReader.Create(File.OpenRead(".\\Files\\Rss\\nzbsorg.xml"));
var httpMock = new Mock<IHttpProvider>(MockBehavior.Strict);
httpMock.Setup(h =>
h.DownloadXml(It.Is<String>(c => c == "www.google.com" || c == "www.yahoo.com")))
.Returns(xmlReader);
kernel.Bind<IHttpProvider>().ToConstant(httpMock.Object);
kernel.Bind<FeedProviderBase>().To<MockFeedProvider>();
kernel.Get<FeedProviderBase>().Fetch();
mocker.GetMock<HttpProvider>()
.Setup(h => h.DownloadXml(It.IsAny<String>()))
.Returns(xmlReader);
mocker.Resolve<MockFeedProvider>().Fetch();
}
}
public class MockFeedProvider : FeedProviderBase
{
public MockFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider, IHttpProvider httpProvider)
public MockFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider, HttpProvider httpProvider)
: base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider)
{
}

@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using AutoMoq;
using Gallio.Framework;
using MbUnit.Framework;
using MbUnit.Framework.ContractVerifiers;
@ -28,22 +29,31 @@ namespace NzbDrone.Core.Test
string priority = "0";
string category = "tv";
var config = new Mock<IConfigProvider>();
config.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
config.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
config.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
config.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
config.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
config.Setup(c => c.GetValue("SabTvPriority", String.Empty, false)).Returns(priority);
config.Setup(c => c.GetValue("SabTvCategory", String.Empty, true)).Returns(category);
var http = new Mock<IHttpProvider>();
http.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=addurl&name=http://www.nzbclub.com/nzb_download.aspx?mid=1950232&priority=0&cat=tv&nzbname=This+is+an+Nzb&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass")).Returns("ok");
var target = new SabProvider(config.Object, http.Object);
var mocker = new AutoMoqer();
var fakeConfig = mocker.GetMock<IConfigProvider>();
fakeConfig.Setup(c => c.GetValue("SabHost", String.Empty, false))
.Returns(sabHost);
fakeConfig.Setup(c => c.GetValue("SabPort", String.Empty, false))
.Returns(sabPort);
fakeConfig.Setup(c => c.GetValue("SabApiKey", String.Empty, false))
.Returns(apikey);
fakeConfig.Setup(c => c.GetValue("SabUsername", String.Empty, false))
.Returns(username);
fakeConfig.Setup(c => c.GetValue("SabPassword", String.Empty, false))
.Returns(password);
fakeConfig.Setup(c => c.GetValue("SabTvPriority", String.Empty, false))
.Returns(priority);
fakeConfig.Setup(c => c.GetValue("SabTvCategory", String.Empty, true))
.Returns(category);
mocker.GetMock<HttpProvider>()
.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=addurl&name=http://www.nzbclub.com/nzb_download.aspx?mid=1950232&priority=0&cat=tv&nzbname=This+is+an+Nzb&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns("ok");
//Act
bool result = target.AddByUrl("http://www.nzbclub.com/nzb_download.aspx?mid=1950232", "This is an Nzb");
bool result = mocker.Resolve<SabProvider>().AddByUrl("http://www.nzbclub.com/nzb_download.aspx?mid=1950232", "This is an Nzb");
//Assert
Assert.AreEqual(true, result);
@ -61,22 +71,23 @@ namespace NzbDrone.Core.Test
string priority = "0";
string category = "tv";
var config = new Mock<IConfigProvider>();
config.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
config.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
config.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
config.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
config.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
config.Setup(c => c.GetValue("SabTvPriority", String.Empty, false)).Returns(priority);
config.Setup(c => c.GetValue("SabTvCategory", String.Empty, true)).Returns(category);
var mocker = new AutoMoqer();
var http = new Mock<IHttpProvider>();
http.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=addurl&name=http://www.nzbclub.com/nzb_download.aspx?mid=1950232&priority=0&cat=tv&nzbname=This+is+an+Nzb&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass")).Returns("error");
var fakeConfig = mocker.GetMock<IConfigProvider>();
fakeConfig.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
fakeConfig.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
fakeConfig.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
fakeConfig.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
fakeConfig.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
fakeConfig.Setup(c => c.GetValue("SabTvPriority", String.Empty, false)).Returns(priority);
fakeConfig.Setup(c => c.GetValue("SabTvCategory", String.Empty, true)).Returns(category);
var target = new SabProvider(config.Object, http.Object);
mocker.GetMock<HttpProvider>()
.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=addurl&name=http://www.nzbclub.com/nzb_download.aspx?mid=1950232&priority=0&cat=tv&nzbname=This+is+an+Nzb&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns("error");
//Act
bool result = target.AddByUrl("http://www.nzbclub.com/nzb_download.aspx?mid=1950232", "This is an Nzb");
bool result = mocker.Resolve<SabProvider>().AddByUrl("http://www.nzbclub.com/nzb_download.aspx?mid=1950232", "This is an Nzb");
//Assert
Assert.AreEqual(false, result);
@ -92,24 +103,21 @@ namespace NzbDrone.Core.Test
string username = "admin";
string password = "pass";
var config = new Mock<IConfigProvider>();
config.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
config.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
config.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
config.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
config.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
var http = new Mock<IHttpProvider>();
http.Setup(
s =>
s.DownloadString(
"http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns(new StreamReader(@".\Files\Queue.xml").ReadToEnd());
var mocker = new AutoMoqer();
var target = new SabProvider(config.Object, http.Object);
var fakeConfig = mocker.GetMock<IConfigProvider>();
fakeConfig.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
fakeConfig.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
fakeConfig.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
fakeConfig.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
fakeConfig.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
mocker.GetMock<HttpProvider>()
.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns(new StreamReader(@".\Files\Queue.xml").ReadToEnd());
//Act
bool result = target.IsInQueue("Ubuntu Test");
bool result = mocker.Resolve<SabProvider>().IsInQueue("Ubuntu Test");
//Assert
Assert.AreEqual(true, result);
@ -125,24 +133,21 @@ namespace NzbDrone.Core.Test
string username = "admin";
string password = "pass";
var config = new Mock<IConfigProvider>();
config.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
config.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
config.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
config.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
config.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
var http = new Mock<IHttpProvider>();
http.Setup(
s =>
s.DownloadString(
"http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns(new StreamReader(@".\Files\QueueEmpty.xml").ReadToEnd());
var mocker = new AutoMoqer();
var target = new SabProvider(config.Object, http.Object);
var fakeConfig = mocker.GetMock<IConfigProvider>();
fakeConfig.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
fakeConfig.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
fakeConfig.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
fakeConfig.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
fakeConfig.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
mocker.GetMock<HttpProvider>()
.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns(new StreamReader(@".\Files\QueueEmpty.xml").ReadToEnd());
//Act
bool result = target.IsInQueue(String.Empty);
bool result = mocker.Resolve<SabProvider>().IsInQueue(String.Empty);
//Assert
Assert.AreEqual(false, result);
@ -158,24 +163,22 @@ namespace NzbDrone.Core.Test
string username = "admin";
string password = "pass";
var config = new Mock<IConfigProvider>();
config.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
config.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
config.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
config.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
config.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
var http = new Mock<IHttpProvider>();
http.Setup(
s =>
s.DownloadString(
"http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
var mocker = new AutoMoqer();
var fakeConfig = mocker.GetMock<IConfigProvider>();
fakeConfig.Setup(c => c.GetValue("SabHost", String.Empty, false)).Returns(sabHost);
fakeConfig.Setup(c => c.GetValue("SabPort", String.Empty, false)).Returns(sabPort);
fakeConfig.Setup(c => c.GetValue("SabApiKey", String.Empty, false)).Returns(apikey);
fakeConfig.Setup(c => c.GetValue("SabUsername", String.Empty, false)).Returns(username);
fakeConfig.Setup(c => c.GetValue("SabPassword", String.Empty, false)).Returns(password);
mocker.GetMock<HttpProvider>()
.Setup(s => s.DownloadString("http://192.168.5.55:2222/api?mode=queue&output=xml&apikey=5c770e3197e4fe763423ee7c392c25d1&ma_username=admin&ma_password=pass"))
.Returns(new StreamReader(@".\Files\QueueError.xml").ReadToEnd());
var target = new SabProvider(config.Object, http.Object);
//Act
bool result = target.IsInQueue(String.Empty);
bool result = mocker.Resolve<SabProvider>().IsInQueue(String.Empty);
//Assert
Assert.AreEqual(false, result);

@ -2,4 +2,7 @@
<packages>
<package id="Ninject" version="2.2.1.0" />
<package id="NBuilder" version="2.3.0.0" />
<package id="Moq" version="4.0.10827" />
<package id="Unity" version="2.0" />
<package id="AutoMoq" version="1.3.1.3" />
</packages>

@ -65,7 +65,7 @@ namespace NzbDrone.Core
_kernel.Bind<IDiskProvider>().To<DiskProvider>();
_kernel.Bind<ITvDbProvider>().To<TvDbProvider>();
_kernel.Bind<IDownloadProvider>().To<SabProvider>();
_kernel.Bind<IHttpProvider>().To<HttpProvider>();
_kernel.Bind<HttpProvider>().To<HttpProvider>();
_kernel.Bind<IHistoryProvider>().To<HistoryProvider>();
_kernel.Bind<IQualityProvider>().To<QualityProvider>();
_kernel.Bind<IRootDirProvider>().To<RootDirProvider>();

@ -221,7 +221,6 @@
<Compile Include="Providers\Core\HttpProvider.cs" />
<Compile Include="Providers\IDownloadProvider.cs" />
<Compile Include="Providers\IEpisodeProvider.cs" />
<Compile Include="Providers\Core\IHttpProvider.cs" />
<Compile Include="Providers\ISeasonProvider.cs" />
<Compile Include="Providers\ISeriesProvider.cs" />
<Compile Include="Providers\ITvDbProvider.cs" />

@ -5,11 +5,11 @@ using NLog;
namespace NzbDrone.Core.Providers.Core
{
internal class HttpProvider : IHttpProvider
public class HttpProvider
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public string DownloadString(string request)
public virtual string DownloadString(string request)
{
try
{
@ -24,7 +24,7 @@ namespace NzbDrone.Core.Providers.Core
return String.Empty;
}
public string DownloadString(string request, string username, string password)
public virtual string DownloadString(string request, string username, string password)
{
try
{
@ -41,7 +41,7 @@ namespace NzbDrone.Core.Providers.Core
return String.Empty;
}
public void DownloadFile(string request, string filename)
public virtual void DownloadFile(string request, string filename)
{
try
{
@ -59,7 +59,7 @@ namespace NzbDrone.Core.Providers.Core
}
public void DownloadFile(string request, string filename, string username, string password)
public virtual void DownloadFile(string request, string filename, string username, string password)
{
try
{
@ -75,7 +75,7 @@ namespace NzbDrone.Core.Providers.Core
}
}
public XmlReader DownloadXml(string url)
public virtual XmlReader DownloadXml(string url)
{
return XmlReader.Create(url);
}

@ -1,13 +0,0 @@
using System.Xml;
namespace NzbDrone.Core.Providers.Core
{
public interface IHttpProvider
{
string DownloadString(string request);
string DownloadString(string request, string username, string password);
void DownloadFile(string request, string filename);
void DownloadFile(string request, string filename, string username, string password);
XmlReader DownloadXml(string url);
}
}

@ -12,11 +12,11 @@ namespace NzbDrone.Core.Providers.Feed
protected readonly ISeasonProvider _seasonProvider;
protected readonly IEpisodeProvider _episodeProvider;
protected readonly IConfigProvider _configProvider;
private readonly IHttpProvider _httpProvider;
private readonly HttpProvider _httpProvider;
protected static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public FeedProviderBase(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider,
IEpisodeProvider episodeProvider, IConfigProvider configProvider, IHttpProvider httpProvider)
IEpisodeProvider episodeProvider, IConfigProvider configProvider, HttpProvider httpProvider)
{
_seriesProvider = seriesProvider;
_seasonProvider = seasonProvider;

@ -9,7 +9,8 @@ namespace NzbDrone.Core.Providers.Feed
{
class NzbsOrgFeedProvider : FeedProviderBase
{
public NzbsOrgFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider, IHttpProvider httpProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider)
public NzbsOrgFeedProvider(ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, IEpisodeProvider episodeProvider, IConfigProvider configProvider, HttpProvider httpProvider)
: base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider)
{
}

@ -10,11 +10,11 @@ namespace NzbDrone.Core.Providers
public class SabProvider : IDownloadProvider
{
private readonly IConfigProvider _config;
private readonly IHttpProvider _http;
private readonly HttpProvider _http;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public SabProvider(IConfigProvider config, IHttpProvider http)
public SabProvider(IConfigProvider config, HttpProvider http)
{
_config = config;
_http = http;

@ -36,12 +36,12 @@ namespace NzbDrone.Core.Providers
#region ISeriesProvider Members
public IQueryable<Series> GetAllSeries()
public virtual IQueryable<Series> GetAllSeries()
{
return _sonioRepo.All<Series>();
}
public Series GetSeries(int seriesId)
public virtual Series GetSeries(int seriesId)
{
return _sonioRepo.Single<Series>(s => s.SeriesId == seriesId);
}
@ -51,12 +51,12 @@ namespace NzbDrone.Core.Providers
/// </summary>
/// <param name="id">The TVDB ID of the series</param>
/// <returns>Whether or not the show is monitored</returns>
public bool IsMonitored(long id)
public virtual bool IsMonitored(long id)
{
return _sonioRepo.Exists<Series>(c => c.SeriesId == id && c.Monitored);
}
public bool QualityWanted(int seriesId, QualityTypes quality)
public virtual bool QualityWanted(int seriesId, QualityTypes quality)
{
var series = _sonioRepo.Single<Series>(seriesId);
@ -64,7 +64,7 @@ namespace NzbDrone.Core.Providers
return profile.Allowed.Contains(quality);
}
public TvdbSeries MapPathToSeries(string path)
public virtual TvdbSeries MapPathToSeries(string path)
{
var seriesPath = new DirectoryInfo(path);
var searchResults = _tvDb.GetSeries(seriesPath.Name);
@ -75,7 +75,7 @@ namespace NzbDrone.Core.Providers
return _tvDb.GetSeries(searchResults.Id, false);
}
public Series UpdateSeriesInfo(int seriesId)
public virtual Series UpdateSeriesInfo(int seriesId)
{
var tvDbSeries = _tvDb.GetSeries(seriesId, true);
var series = GetSeries(seriesId);
@ -94,7 +94,7 @@ namespace NzbDrone.Core.Providers
return series;
}
public void AddSeries(string path, int tvDbSeriesId, int qualityProfileId)
public virtual void AddSeries(string path, int tvDbSeriesId, int qualityProfileId)
{
Logger.Info("Adding Series [{0}] Path: [{1}]", tvDbSeriesId, path);
@ -111,17 +111,17 @@ namespace NzbDrone.Core.Providers
_sonioRepo.Add(repoSeries);
}
public Series FindSeries(string title)
public virtual Series FindSeries(string title)
{
return _sonioRepo.Single<Series>(s => s.CleanTitle == Parser.NormalizeTitle(title));
}
public void UpdateSeries(Series series)
public virtual void UpdateSeries(Series series)
{
_sonioRepo.Update(series);
}
public void DeleteSeries(int seriesId)
public virtual void DeleteSeries(int seriesId)
{
Logger.Warn("Deleting Series [{0}]", seriesId);
@ -154,7 +154,7 @@ namespace NzbDrone.Core.Providers
}
}
public bool SeriesPathExists(string cleanPath)
public virtual bool SeriesPathExists(string cleanPath)
{
if (_sonioRepo.Exists<Series>(s => s.Path == cleanPath))
return true;

@ -13,11 +13,11 @@ namespace NzbDrone.Core.Providers
public class XbmcProvider : IXbmcProvider
{
private readonly IConfigProvider _configProvider;
private readonly IHttpProvider _httpProvider;
private readonly HttpProvider _httpProvider;
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public XbmcProvider(IConfigProvider configProvider, IHttpProvider httpProvider)
public XbmcProvider(IConfigProvider configProvider, HttpProvider httpProvider)
{
_configProvider = configProvider;
_httpProvider = httpProvider;

@ -55,7 +55,6 @@ Global
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|x64.ActiveCfg = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|x86.ActiveCfg = Debug|Any CPU
{43BD3BBD-1531-4D8F-9C08-E1CD544AB2CD}.Debug|x86.Build.0 = Debug|Any CPU

Binary file not shown.

Binary file not shown.

@ -0,0 +1,39 @@
Copyright (c) 2007. Clarius Consulting, Manas Technology Solutions, InSTEDD
http://code.google.com/p/moq/
All rights reserved.
Redistribution and use in source and binary forms,
with or without modification, are permitted provided
that the following conditions are met:
* Redistributions of source code must retain the
above copyright notice, this list of conditions and
the following disclaimer.
* Redistributions in binary form must reproduce
the above copyright notice, this list of conditions
and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Clarius Consulting, Manas Technology Solutions or InSTEDD nor the
names of its contributors may be used to endorse
or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
[This is the BSD license, see
http://www.opensource.org/licenses/bsd-license.php]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -0,0 +1,716 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Practices.Unity.Interception.Configuration</name>
</assembly>
<members>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement">
<summary>
Configuration element that lets you specify additional interfaces
to add when this type is intercepted.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.TypeName">
<summary>
Type of interface to add.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElement">
<summary>
Configuration element representing a call handler.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement">
<summary>
Base class for the two children of the Policy element:
MatchingRuleElement and CallHandlerElement.
</summary>
<remarks>
<para>
These configuration elements have a required "name" attribute, an optional "type" attribute, and
optional child elements &lt;lifetime&gt; and &lt;injection&gt;
</para>
<para>
Elements without a value for the type attribute can only have a value for the name attribute, and
indicate that the represented handler or rule is configured elsewhere and that a reference to
the given name must be added to the policy to be resolved, while elements with a value for the type
attribute indicate how the represented handler or rule should be built and can optionally specify
lifetime management and injection configuration.
</para>
<para>
This element is similar to the <see cref="T:Microsoft.Practices.Unity.Configuration.RegisterElement"/>, except that it does not provide
an extension point for arbitrary configuration.
</para>
</remarks>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.DeserializeElement(System.Xml.XmlReader,System.Boolean)">
<summary>
Reads XML from the configuration file.
</summary>
<param name="reader">The <see cref="T:System.Xml.XmlReader"/> that reads from the configuration file.
</param><param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element to read is locked.
- or -
An attribute of the current node is not recognized.
- or -
The lock status of the current node cannot be determined.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Name">
<summary>
Name of this item
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.TypeName">
<summary>
Type that implements this matching rule or call handler.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Injection">
<summary>
Injection members that control how this item is created.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Lifetime">
<summary>
Lifetime manager for this item.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElement"/>s for configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Causes the configuration system to throw an exception.
</summary>
<returns>
true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
</returns>
<param name="elementName">The name of the unrecognized element.
</param><param name="reader">An input stream that reads XML from the configuration file.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element specified in <paramref name="elementName"/> is the &lt;clear&gt; element.
</exception><exception cref="T:System.ArgumentException"><paramref name="elementName"/> starts with the reserved prefix "config" or "lock".
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.Item(System.String)">
<summary>
Retrieve a call handler element from the collection by name.
</summary>
<param name="name">Name to look up.</param>
<returns>The rule, or null if not in the collection.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.DefaultElement">
<summary>
The &lt;default&gt; element that appears inside an &lt;interceptor&gt; element.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement">
<summary>
Base class for the default and key elements that can occur
inside the &lt;interceptor&gt; element.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.TypeName">
<summary>
Type name that this interceptor will be registered for.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.ResolvedType">
<summary>
Return the type object that is resolved from the <see cref="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.TypeName"/> property.
</summary>
<returns>The type object.</returns>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.DefaultElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement">
<summary>
Configuration elmement for specifying
interception behaviors for a type.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.DeserializeElement(System.Xml.XmlReader,System.Boolean)">
<summary>
Reads XML from the configuration file.
</summary>
<param name="reader">The <see cref="T:System.Xml.XmlReader"/> that reads from the configuration file.
</param><param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element to read is locked.
- or -
An attribute of the current node is not recognized.
- or -
The lock status of the current node cannot be determined.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.TypeName">
<summary>
Type of behavior to add.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.Name">
<summary>
Name of behavior to resolve.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.IsDefaultForType">
<summary>
Should this behavior be configured as a default behavior for this type, or
specifically for this type/name pair only?
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension">
<summary>
Section extension class used to add the elements needed to configure
Unity interception to the configuration schema.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension.AddExtensions(Microsoft.Practices.Unity.Configuration.SectionExtensionContext)">
<summary>
Add the extensions to the section via the context.
</summary>
<param name="context">Context object that can be used to add elements and aliases.</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement">
<summary>
A configuration element that contains the top-level container configuration
information for interception - handler policies and global interceptor definitions.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Apply this element's configuration to the given <paramref name="container"/>.
</summary>
<param name="container">Container to configure.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.Policies">
<summary>
Policies defined for this container.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement">
<summary>
Configuration element that lets you configure
what interceptor to use for a type.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.#ctor">
<summary>
Initialize a new <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement"/>.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.TypeName">
<summary>
Type name for the interceptor to apply.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.Name">
<summary>
Name to use when resolving interceptors from the container.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.IsDefaultForType">
<summary>
Should this interceptor be registered as the default for the contained
type, or only for this particular type/name pair?
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement"/> objects as shown
in configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection.CreateNewElement">
<summary>
When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.
</summary>
<returns>
A new <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement">
<summary>
Configuration element that provides a top-level element for
configuration interceptors for types in a container.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Apply this element's configuration to the given <paramref name="container"/>.
</summary>
<param name="container">Container to configure.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.Interceptors">
<summary>
The various child elements that are contained in this element.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement">
<summary>
Configuration element that represents the configuration for
a specific interceptor, as presented in the config file inside
the &lt;interceptors&gt; element.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.TypeName">
<summary>
Type of interceptor to configure.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.Registrations">
<summary>
The types that this interceptor will be registered against.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.Value">
<summary>
Any value passed to the type converter.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.TypeConverterTypeName">
<summary>
Type converter to use to create the interceptor, if any.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement"/> objects
as stored in configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement">
<summary>
The &lt;key&gt; element that occurs inside an &lt;interceptor&gt; element
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.Name">
<summary>
Name registration should be under. To register under the default, leave blank.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElement">
<summary>
A configuration element representing a matching rule.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElement"/>s for configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Causes the configuration system to throw an exception.
</summary>
<returns>
true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
</returns>
<param name="elementName">The name of the unrecognized element.
</param><param name="reader">An input stream that reads XML from the configuration file.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element specified in <paramref name="elementName"/> is the &lt;clear&gt; element.
</exception><exception cref="T:System.ArgumentException"><paramref name="elementName"/> starts with the reserved prefix "config" or "lock".
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.Item(System.String)">
<summary>
Retrieve a matching rule element from the collection by name.
</summary>
<param name="name">Name to look up.</param>
<returns>The rule, or null if not in the collection.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement">
<summary>
Configuration element for building up an interception policy.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.Name">
<summary>
Name of this policy.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.MatchingRules">
<summary>
Matching rules for this policy.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.CallHandlers">
<summary>
Call handlers for this policy.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement"/> in the configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection.Item(System.String)">
<summary>
Indexer to retrieve policy element objects by name.
</summary>
<param name="policyName">Name of policy to get.</param>
<returns>The element.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement">
<summary>
A shortcut element to enable the policy injection behavior.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotCreateInterceptorRegistrationElement">
<summary>
Looks up a localized string similar to The abstract type InterceptorRegistrationElement cannot be created. Please create a concrete instance..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotHaveInjectionWithoutTypeName">
<summary>
Looks up a localized string similar to The &lt;injection/&gt; element is not allowed on element named &apos;{0}&apos; because it doesn&apos;t have a type attribute..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotHaveLifetimeWithoutTypeName">
<summary>
Looks up a localized string similar to The &lt;lifetime/&gt; element is not allowed on element named &apos;{0}&apos; because it doesn&apos;t have a type attribute..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CouldNotResolveType">
<summary>
Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ExceptionCannotCreateInstance">
<summary>
Looks up a localized string similar to Cannot create instance of type {0} with a default constructor..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ExceptionResolvedTypeNotCompatible">
<summary>
Looks up a localized string similar to The type name {0} resolved to type {1} is not compatible with the required type {2}..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.InvalidInterceptorType">
<summary>
Looks up a localized string similar to The type {0} could not be resolved to a valid type. Please double check your configuration..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.MustHaveAtLeastOneBehaviorAttribute">
<summary>
Looks up a localized string similar to The interception behavior element must have at least one of the &apos;name&apos; or &apos;type&apos; attributes..
</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save