diff --git a/NetrunnerDb.Net.sln b/NetrunnerDb.Net.sln
index 9f2e8ac..ee49ed2 100644
--- a/NetrunnerDb.Net.sln
+++ b/NetrunnerDb.Net.sln
@@ -5,7 +5,9 @@ VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetrunnerDb.Net", "src\NetrunnerDb.Net\NetrunnerDb.Net.csproj", "{1B508DCB-3207-4597-B938-9218D32A41A4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetrunnerDb.Net.Tests", "src\NetrunnerDb.Net.Tests\NetrunnerDb.Net.Tests.csproj", "{60115585-7F0E-438F-BC86-CCA9D6575062}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetrunnerDb.Net.UnitTests", "src\NetrunnerDb.Net.UnitTests\NetrunnerDb.Net.UnitTests.csproj", "{60115585-7F0E-438F-BC86-CCA9D6575062}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetrunnerDb.Net.AcceptanceTests", "src\NetrunnerDb.Net.AcceptanceTests\NetrunnerDb.Net.AcceptanceTests.csproj", "{B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,6 +23,10 @@ Global
{60115585-7F0E-438F-BC86-CCA9D6575062}.Debug|Any CPU.Build.0 = Debug|Any CPU
{60115585-7F0E-438F-BC86-CCA9D6575062}.Release|Any CPU.ActiveCfg = Release|Any CPU
{60115585-7F0E-438F-BC86-CCA9D6575062}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/appveyor.yml b/appveyor.yml
index b32e45a..8efbef8 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -24,3 +24,7 @@ deploy:
secure: fGNwXOtebe3kxu5SrB90CrbaCxVxuzuCQh3Ipcc0G/3cutoNZf7d7G6AaQ4fRv2l
on:
branch: master
+test:
+ categories:
+ - [Unit]
+ - [Acceptance]
diff --git a/src/NetrunnerDb.Net.AcceptanceTests/NetrunnerDb.Net.AcceptanceTests.csproj b/src/NetrunnerDb.Net.AcceptanceTests/NetrunnerDb.Net.AcceptanceTests.csproj
new file mode 100644
index 0000000..658f6f5
--- /dev/null
+++ b/src/NetrunnerDb.Net.AcceptanceTests/NetrunnerDb.Net.AcceptanceTests.csproj
@@ -0,0 +1,68 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {B2585CDE-E2A6-4B28-8FC6-AD11CB28B13E}
+ Library
+ Properties
+ NetrunnerDb.Net.AcceptanceTests
+ NetrunnerDb.Net.AcceptanceTests
+ v4.5
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {1b508dcb-3207-4597-b938-9218d32a41a4}
+ NetrunnerDb.Net
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/NetrunnerDb.Net.AcceptanceTests/Properties/AssemblyInfo.cs b/src/NetrunnerDb.Net.AcceptanceTests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..04d1982
--- /dev/null
+++ b/src/NetrunnerDb.Net.AcceptanceTests/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("NetrunnerDb.Net.AcceptanceTests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("NetrunnerDb.Net.AcceptanceTests")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a723e4fe-f081-4ca9-ac04-801a5f9b30e7")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/src/NetrunnerDb.Net.AcceptanceTests/QueryThings.cs b/src/NetrunnerDb.Net.AcceptanceTests/QueryThings.cs
new file mode 100644
index 0000000..b5c2684
--- /dev/null
+++ b/src/NetrunnerDb.Net.AcceptanceTests/QueryThings.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Linq;
+using NetrunnerDb.Net.Responses;
+using NUnit.Framework;
+
+namespace NetrunnerDb.Net.AcceptanceTests
+{
+ [TestFixture(Category = "Acceptance", Description = "Basic, hey can we do the things this project intends to do")]
+ public class QueryThings
+ {
+ [Test]
+ public void OneCard()
+ {
+ Assert.AreEqual(new Repository().GetCard("01001").First().Title, "Noise: Hacker Extraordinaire");
+ }
+ [Test]
+ public void Cards()
+ {
+ Assert.IsTrue(new Repository().GetCards().Count > 100);
+ }
+ [Test]
+ public void Set()
+ {
+ Assert.IsTrue(new Repository().GetSet("tsb").Count > 10);
+ }
+ [Test]
+ public void Sets()
+ {
+ Assert.IsTrue(new Repository().GetSets().Count > 10);
+ }
+ [Test]
+ public void Decklist()
+ {
+ Assert.AreEqual(20866, new Repository().GetRequest("20866").First().Id);
+ }
+ [Test]
+ public void DecklistByDate()
+ {
+ var targetDate = new DateTime(2014, 01, 01);
+ Assert.IsTrue(new Repository().GetRequest(targetDate.ToString("MM/dd/yyyy")).All(a =>
+ {
+ var parseDate = DateTime.Parse(a.Creation);
+ return (parseDate >= targetDate && parseDate <= parseDate.AddDays(1).AddMinutes(-1));
+ }));
+ }
+ }
+}
diff --git a/src/NetrunnerDb.Net.AcceptanceTests/packages.config b/src/NetrunnerDb.Net.AcceptanceTests/packages.config
new file mode 100644
index 0000000..c714ef3
--- /dev/null
+++ b/src/NetrunnerDb.Net.AcceptanceTests/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/NetrunnerDb.Net.Tests/Class1.cs b/src/NetrunnerDb.Net.UnitTests/Class1.cs
similarity index 78%
rename from src/NetrunnerDb.Net.Tests/Class1.cs
rename to src/NetrunnerDb.Net.UnitTests/Class1.cs
index d4d1877..973d69b 100644
--- a/src/NetrunnerDb.Net.Tests/Class1.cs
+++ b/src/NetrunnerDb.Net.UnitTests/Class1.cs
@@ -1,12 +1,8 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using NetrunnerDb.Net.Responses;
using NUnit.Framework;
-namespace NetrunnerDb.Net.Tests
+namespace NetrunnerDb.Net.UnitTests
{
[TestFixture]
public class Class1
diff --git a/src/NetrunnerDb.Net.Tests/NetrunnerDb.Net.Tests.csproj b/src/NetrunnerDb.Net.UnitTests/NetrunnerDb.Net.UnitTests.csproj
similarity index 92%
rename from src/NetrunnerDb.Net.Tests/NetrunnerDb.Net.Tests.csproj
rename to src/NetrunnerDb.Net.UnitTests/NetrunnerDb.Net.UnitTests.csproj
index b69358e..1ed5414 100644
--- a/src/NetrunnerDb.Net.Tests/NetrunnerDb.Net.Tests.csproj
+++ b/src/NetrunnerDb.Net.UnitTests/NetrunnerDb.Net.UnitTests.csproj
@@ -7,8 +7,8 @@
{60115585-7F0E-438F-BC86-CCA9D6575062}
Library
Properties
- NetrunnerDb.Net.Tests
- NetrunnerDb.Net.Tests
+ NetrunnerDb.Net.UnitTests
+ NetrunnerDb.Net.UnitTests
v4.5
512
@@ -30,6 +30,9 @@
4
+
+ ..\..\packages\Moq.4.2.1502.0911\lib\net40\Moq.dll
+
..\..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll
False
@@ -61,6 +64,7 @@
+
diff --git a/src/NetrunnerDb.Net.Tests/Properties/AssemblyInfo.cs b/src/NetrunnerDb.Net.UnitTests/Properties/AssemblyInfo.cs
similarity index 97%
rename from src/NetrunnerDb.Net.Tests/Properties/AssemblyInfo.cs
rename to src/NetrunnerDb.Net.UnitTests/Properties/AssemblyInfo.cs
index 7a39f67..0552c43 100644
--- a/src/NetrunnerDb.Net.Tests/Properties/AssemblyInfo.cs
+++ b/src/NetrunnerDb.Net.UnitTests/Properties/AssemblyInfo.cs
@@ -1,5 +1,4 @@
using System.Reflection;
-using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
diff --git a/src/NetrunnerDb.Net.UnitTests/RequestTests/EndpointInterfaceTesting.cs b/src/NetrunnerDb.Net.UnitTests/RequestTests/EndpointInterfaceTesting.cs
new file mode 100644
index 0000000..e111562
--- /dev/null
+++ b/src/NetrunnerDb.Net.UnitTests/RequestTests/EndpointInterfaceTesting.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Linq;
+using NetrunnerDb.Net.Responses;
+using NUnit.Framework;
+
+namespace NetrunnerDb.Net.UnitTests.RequestTests
+{
+ [TestFixture(Category = "Unit")]
+ public class EndpointInterfaceTesting
+ {
+ [Test]
+ public void TestSmallEndpoints()
+ {
+ Assert.Throws(()=>new Cards().EndPoint("not null string"));
+ Assert.Throws(() => new Sets().EndPoint("not null string"));
+ Assert.Throws(() => new Decklist().EndPoint(String.Empty));
+ Assert.Throws(() => new Set().EndPoint(String.Empty));
+ Assert.Throws(() => new OneCard().EndPoint(String.Empty));
+
+ }
+
+ [Test]
+ public void TestDecklistEndpointDateTimeOverride()
+ {
+ var mockedDatetime = new DateTime(2014, 1, 1);
+ var decklistByDate = new DecklistByDate(mockedDatetime);
+ var decklistEndpoint = decklistByDate.EndPoint();
+ var date = decklistEndpoint.Split('/').Last();
+ Assert.AreEqual(date, "2014-01-01");
+ }
+
+ [Test]
+ public void TestDecklistEndpoint()
+ {
+ Assert.Throws(() => new DecklistByDate().EndPoint(String.Empty));
+ Assert.Throws(() => new DecklistByDate().EndPoint("awesome"));
+ var decklistByDate = new DecklistByDate();
+ var decklistEndpoint = decklistByDate.EndPoint("01/01/2014");
+ var date = decklistEndpoint.Split('/').Last();
+ Assert.AreEqual(date, "2014-01-01");
+ }
+ }
+}
diff --git a/src/NetrunnerDb.Net.Tests/packages.config b/src/NetrunnerDb.Net.UnitTests/packages.config
similarity index 74%
rename from src/NetrunnerDb.Net.Tests/packages.config
rename to src/NetrunnerDb.Net.UnitTests/packages.config
index 1f8800b..d75a8c1 100644
--- a/src/NetrunnerDb.Net.Tests/packages.config
+++ b/src/NetrunnerDb.Net.UnitTests/packages.config
@@ -1,5 +1,6 @@
+
\ No newline at end of file
diff --git a/src/NetrunnerDb.Net/Repository.cs b/src/NetrunnerDb.Net/Repository.cs
index 87a3f79..0e00b23 100644
--- a/src/NetrunnerDb.Net/Repository.cs
+++ b/src/NetrunnerDb.Net/Repository.cs
@@ -22,7 +22,8 @@ namespace NetrunnerDb.Net
where TResult : class, IRequest, new()
{
var s = new TResult();
- var request = new RestRequest(){
+ var request = new RestRequest
+ {
Resource = s.EndPoint(parameter)
};
var client = new RestClient("http://netrunnerdb.com");
@@ -52,9 +53,9 @@ namespace NetrunnerDb.Net
///
///
///
- public IList GetSet(string code)
+ public IList GetSet(string code)
{
- return GetRequest(code);
+ return GetRequest(code);
}
///
/// /api/cards/ returns data about all the cards in the database.
diff --git a/src/NetrunnerDb.Net/Responses/BaseRequest.cs b/src/NetrunnerDb.Net/Responses/BaseRequest.cs
index ddb7154..4b6655d 100644
--- a/src/NetrunnerDb.Net/Responses/BaseRequest.cs
+++ b/src/NetrunnerDb.Net/Responses/BaseRequest.cs
@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace NetrunnerDb.Net.Responses
+namespace NetrunnerDb.Net.Responses
{
public abstract class BaseRequest : IRequest
{
diff --git a/src/NetrunnerDb.Net/Responses/Cards.cs b/src/NetrunnerDb.Net/Responses/Cards.cs
index 6f0b822..9d5384e 100644
--- a/src/NetrunnerDb.Net/Responses/Cards.cs
+++ b/src/NetrunnerDb.Net/Responses/Cards.cs
@@ -111,6 +111,12 @@ namespace NetrunnerDb.Net.Responses
[JsonProperty("trash")]
public int? Trash { get; set; }
+ ///
+ /// Configure Endpoint
+ ///
+ ///
+ ///
+ /// parameter
public override string EndPoint(string parameter = "")
{
//this endpoint should not be passed a parameter
diff --git a/src/NetrunnerDb.Net/Responses/Decklist.cs b/src/NetrunnerDb.Net/Responses/Decklist.cs
index 14c6ba1..ffe287e 100644
--- a/src/NetrunnerDb.Net/Responses/Decklist.cs
+++ b/src/NetrunnerDb.Net/Responses/Decklist.cs
@@ -1,8 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using Newtonsoft.Json;
namespace NetrunnerDb.Net.Responses
diff --git a/src/NetrunnerDb.Net/Responses/DecklistByDay.cs b/src/NetrunnerDb.Net/Responses/DecklistByDay.cs
index ee15dd8..6037b2b 100644
--- a/src/NetrunnerDb.Net/Responses/DecklistByDay.cs
+++ b/src/NetrunnerDb.Net/Responses/DecklistByDay.cs
@@ -4,6 +4,7 @@ using Newtonsoft.Json;
namespace NetrunnerDb.Net.Responses
{
+
public class DecklistByDate : BaseRequest
{
public DecklistByDate() { }
@@ -36,7 +37,7 @@ namespace NetrunnerDb.Net.Responses
{
if (Endpoint.HasValue)
{
- return string.Format("/api/decklists/by_date/{0}", Endpoint.Value.ToString("yy-MM-dd"));
+ return string.Format("/api/decklists/by_date/{0}", Endpoint.Value.ToString("yyyy-MM-dd"));
}
if (string.IsNullOrWhiteSpace(parameter))
{
@@ -45,7 +46,7 @@ namespace NetrunnerDb.Net.Responses
DateTime dateTime;
if (DateTime.TryParse(parameter, out dateTime))
{
- return string.Format("/api/decklists/by_date/{0}", dateTime.ToString("yy-MM-dd"));
+ return string.Format("/api/decklists/by_date/{0}", dateTime.ToString("yyyy-MM-dd"));
}
throw new FormatException(string.Format("{0} is not a valid date format"));
}
diff --git a/src/NetrunnerDb.Net/Responses/OneCard.cs b/src/NetrunnerDb.Net/Responses/OneCard.cs
index 74f60df..e8a21b9 100644
--- a/src/NetrunnerDb.Net/Responses/OneCard.cs
+++ b/src/NetrunnerDb.Net/Responses/OneCard.cs
@@ -1,8 +1,4 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using Newtonsoft.Json;
namespace NetrunnerDb.Net.Responses
@@ -93,7 +89,7 @@ namespace NetrunnerDb.Net.Responses
//we should be passed an actual param
if (string.IsNullOrWhiteSpace(parameter))
{
- throw new ArgumentNullException("parameter");
+ throw new ArgumentOutOfRangeException("parameter", "Endpoint OneCard requires a parameter");
}
return string.Format("/api/card/{0}", parameter);
}