Skip to content

feat(framework): .net standard 2.0 API client #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################

*.user
/.vs
/OpenAPI Client/bin
/OpenAPI Client/obj
/OpenAPI Client Unit Tests/bin
/OpenAPI Client Unit Tests/obj
21 changes: 21 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<Project>

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugType>None</DebugType>
<DebugSymbols>false</DebugSymbols>
</PropertyGroup>

<PropertyGroup>
<GenerateDocumentationFile Condition=" '$(Configuration)' == 'Release' ">true</GenerateDocumentationFile>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<RepositoryType>git</RepositoryType>

<UseFullSemVerForNuGet>true</UseFullSemVerForNuGet>
<DebugType>embedded</DebugType>
<IncludeSymbols>false</IncludeSymbols>
<IsTestProject>$(MSBuildProjectName.Contains('Tests'))</IsTestProject>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<LangVersion>8.0</LangVersion>
</PropertyGroup>

</Project>
14 changes: 8 additions & 6 deletions OpenAPI Client Unit Tests/Accounts/LoginTest.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
using Bol.OpenAPI.Client;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class LoginTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

/// <summary>
/// Usage of this call is limited and only on request by email to [email protected].
/// https://partnerblog.bol.com/documentatie/open-api/handleiding/api-requests/accounts/post-accountsv4login/
/// </summary>
[TestMethod]
public void TestLogin()
public async Task TestLogin()
{
// Insert proper private token that has user permission.

//Login login = client.Login("", null);
//Assert.IsNotNull(login.Name);
//Assert.IsNotNull(login.SessionId);
await Task.CompletedTask;
}
}
}
17 changes: 11 additions & 6 deletions OpenAPI Client Unit Tests/Accounts/LogoutTest.cs
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
using Bol.OpenAPI.Client;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class LogoutTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

/// <summary>
/// Usage of this call is limited and only on request by email to [email protected].
/// https://partnerblog.bol.com/documentatie/open-api/handleiding/api-requests/accounts/post-accountsv4logout/
/// </summary>
[TestMethod]
public void TestLogout()
public async Task TestLogout()
{
Login login = client.Login("M3F7zteABWh8tpGkZyitU003zUtohfZ6kLV5ZohuNFlqDS6LntSL1z6Me3yslsJX9hQGeh5VJor1P8hs9swT8Q1RhqGMRuxOBxYOGZp6YTFRi0X5BADsUDdUWX3YknbV3JgDIY30dwZNNHGa4em8YnPsl9j9LvESiQoC7RQhHoV94DfmMX31AIeMsliYqZVqN2e2wRcdekUvQJRGOltgEMh8GlL4IfG3c8KglOGCJZqUwYnfRzeEOjcKrgH4Los9", null);
client.Logout(login.SessionId);
//var token = await client.GetRequestAuthTokenAsync(null, null);
//var login = await client.LoginAsync(token.PrivateToken, null);
//client.LogoutAsync(login.SessionId);
await Task.CompletedTask;
}
}
}
10 changes: 5 additions & 5 deletions OpenAPI Client Unit Tests/Accounts/RequestAuthTokenTest.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
using Bol.OpenAPI.Client;
using System.Threading.Tasks;
using Bol.OpenAPI.Client;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class RequestAuthTokenTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestGetRequestAuthToken()
public async Task TestGetRequestAuthToken()
{
RequestAuthToken requestAuthToken = client.GetRequestAuthToken("https://m.bol.com/nl/", "https://m.bol.com/nl/error/");
var requestAuthToken = await _client.GetRequestAuthTokenAsync("https://m.bol.com/nl/", "https://m.bol.com/nl/error/");
Assert.IsNotNull(requestAuthToken.Code);
Assert.IsNotNull(requestAuthToken.PrivateToken);
Assert.IsNotNull(requestAuthToken.Url);
Expand Down
9 changes: 4 additions & 5 deletions OpenAPI Client Unit Tests/Accounts/SessionTest.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
using Bol.OpenAPI.Client;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class SessionTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestGetSession()
public async Task TestGetSession()
{
Session session = client.GetSession();
var session = await _client.GetSessionAsync();
Assert.IsNotNull(session.SessionId);
}
}
Expand Down
35 changes: 17 additions & 18 deletions OpenAPI Client Unit Tests/Accounts/WishListTest.cs
Original file line number Diff line number Diff line change
@@ -1,55 +1,54 @@
using Bol.OpenAPI.Client;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class WishListTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestGetWishList()
public async Task TestGetWishList()
{
Session session = client.GetSession();
var session = await _client.GetSessionAsync();
Assert.IsNotNull(session.SessionId);

WishList wishList = client.GetWishList(session.SessionId);
var wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 0);
}

[TestMethod]
public void TestAddItemToWishList()
public async Task TestAddItemToWishList()
{
Session session = client.GetSession();
var session = await _client.GetSessionAsync();
Assert.IsNotNull(session.SessionId);

WishList wishList = client.GetWishList(session.SessionId);
var wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 0);

client.AddItemToWishList(session.SessionId, "1004004012288125");
await _client.AddItemToWishListAsync(session.SessionId, "1004004012288125");

wishList = client.GetWishList(session.SessionId);
wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 1);
}

[TestMethod]
public void TestRemoveItemFromWishList()
public async Task TestRemoveItemFromWishList()
{
Session session = client.GetSession();
var session = await _client.GetSessionAsync();
Assert.IsNotNull(session.SessionId);

WishList wishList = client.GetWishList(session.SessionId);
var wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 0);

client.AddItemToWishList(session.SessionId, "1004004012288125");
await _client.AddItemToWishListAsync(session.SessionId, "1004004012288125");

wishList = client.GetWishList(session.SessionId);
wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 1);

client.RemoveItemFromWishList(session.SessionId, wishList.WishListItems[0].Id);
await _client.RemoveItemFromWishListAsync(session.SessionId, wishList.WishListItems[0].Id);

wishList = client.GetWishList(session.SessionId);
wishList = await _client.GetWishListAsync(session.SessionId);
Assert.IsTrue(wishList.WishListItems.Count == 0);

}
Expand Down
35 changes: 18 additions & 17 deletions OpenAPI Client Unit Tests/Catalog/BrowseTest.cs
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
using Bol.OpenAPI.Client;
using Bol.OpenAPI.Request.Catalog;
using Bol.OpenAPI.Request.Common;
using System.Threading.Tasks;
using Bol.OpenAPI.Client.Request.Catalog;
using Bol.OpenAPI.Client.Request.Common;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests
{
[TestClass]
public class BrowseTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestBrowse()
public async Task TestBrowse()
{
ListResultsRequest listResultsRequest = new ListResultsRequest();
listResultsRequest.Type = EnumTypes.ListType.DEFAULT;
listResultsRequest.CategoryId = "3135";
listResultsRequest.IncludeAttributes = true;
listResultsRequest.Offset = 10;
listResultsRequest.Limit = 10;
listResultsRequest.DataOutputs = new EnumTypes.DataOutputType[] {
var listResultsRequest = new ListResultsRequest
{
Type = EnumTypes.ListType.DEFAULT,
CategoryId = "3135",
IncludeAttributes = true,
Offset = 10,
Limit = 10,
DataOutputs = new[] {
EnumTypes.DataOutputType.PRODUCTS,
EnumTypes.DataOutputType.CATEGORIES,
EnumTypes.DataOutputType.REFINEMENTS
};
listResultsRequest.Offers = new EnumTypes.OfferType[] {
},
Offers = new[] {
EnumTypes.OfferType.ALL
};
}
};

ListResults listResults = client.Browse(listResultsRequest);
var listResults = await _client.BrowseAsync(listResultsRequest);
Assert.IsTrue(listResults.TotalResultSize > 0);
Assert.IsNotNull(listResults.Categories);
Assert.IsTrue(listResults.Categories.Count > 0);
Expand Down
21 changes: 11 additions & 10 deletions OpenAPI Client Unit Tests/Catalog/ProductOffersTest.cs
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
using Bol.OpenAPI.Client;
using Bol.OpenAPI.Request.Catalog;
using Bol.OpenAPI.Request.Common;
using System.Threading.Tasks;
using Bol.OpenAPI.Client.Request.Catalog;
using Bol.OpenAPI.Client.Request.Common;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests.Catalog
{
[TestClass]
public class ProductOffersTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestGetProductOffers()
public async Task TestGetProductOffers()
{
ProductOffersRequest productOffersRequest = new ProductOffersRequest();
productOffersRequest.Id = "1004004012288125";
productOffersRequest.Offers = new EnumTypes.OfferType[] {
var productOffersRequest = new ProductOffersRequest
{
Id = "1004004012288125",
Offers = new[] {
EnumTypes.OfferType.ALL
}
};

ProductOffers productOffers = client.GetProductOffers(productOffersRequest);
var productOffers = await _client.GetProductOffersAsync(productOffersRequest);
Assert.IsNotNull(productOffers.OfferData);
Assert.IsNotNull(productOffers.OfferData.Offers);
Assert.IsTrue(productOffers.OfferData.Offers.Count > 0);
Expand Down
27 changes: 14 additions & 13 deletions OpenAPI Client Unit Tests/Catalog/ProductRecommendationsTest.cs
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
using Bol.OpenAPI.Client;
using Bol.OpenAPI.Request.Catalog;
using Bol.OpenAPI.Request.Common;
using System.Threading.Tasks;
using Bol.OpenAPI.Client.Request.Catalog;
using Bol.OpenAPI.Client.Request.Common;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenAPI_Client_Unit_Tests.Catalog
{
[TestClass]
public class ProductRecommendationsTest
: ConfiguredTestBase
{
private OpenApiClient client = new OpenApiClient(Constants.API_KEY);

[TestMethod]
public void TestGetProductRecommendation()
public async Task TestGetProductRecommendation()
{
ProductRecommendationsRequest productRecommendationsRequest = new ProductRecommendationsRequest();
productRecommendationsRequest.Id = "1004004012288125";
productRecommendationsRequest.IncludeAttributes = true;
productRecommendationsRequest.Offers = new EnumTypes.OfferType[] {
var productRecommendationsRequest = new ProductRecommendationsRequest
{
Id = "1004004012288125",
IncludeAttributes = true,
Offers = new[] {
EnumTypes.OfferType.ALL
},
Offset = 0,
Limit = 10
};
productRecommendationsRequest.Offset = 0;
productRecommendationsRequest.Limit = 10;

ProductRecommendations productRecommendations = client.GetProductRecommendations(productRecommendationsRequest);
var productRecommendations = await _client.GetProductRecommendationsAsync(productRecommendationsRequest);
Assert.IsNotNull(productRecommendations.Products);
Assert.IsTrue(productRecommendations.Products.Count > 0);
}
Expand Down
Loading