Skip to content
Merged
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
87 changes: 87 additions & 0 deletions src/Constructorio_NET.Tests/client/modules/AutocompleteTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,93 @@ public async Task GetAutocompleteResultsShouldReturnResultWithVariationsMap()
);
}

[Test]
public async Task GetAutocompleteResultsShouldReturnResultWithVariationsMapStringValueCount()
{
AutocompleteRequest req = new AutocompleteRequest("item1")
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
"true"
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
AutocompleteResponse res = await constructorio.Autocomplete.GetAutocompleteResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": \"true\" }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
}

[Test]
public async Task GetAutocompleteResultsShouldReturnResultWithVariationsMapBooleanValueCount()
{
AutocompleteRequest req = new AutocompleteRequest("item1")
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
true
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
AutocompleteResponse res = await constructorio.Autocomplete.GetAutocompleteResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": true }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
}

[Test]
public async Task GetAutocompleteResultsShouldReturnResultWithVariationsMapIntegerValueCount()
{
AutocompleteRequest req = new AutocompleteRequest("item1")
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
24
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
AutocompleteResponse res = await constructorio.Autocomplete.GetAutocompleteResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": 24 }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
}

[Test]
public async Task GetAutocompleteResultsShouldReturnResultWithSearchSuggestionOnly()
{
Expand Down
90 changes: 90 additions & 0 deletions src/Constructorio_NET.Tests/client/modules/BrowseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -658,6 +658,96 @@ public async Task GetBrowseResultsShouldReturnResultWithVariationsMap()
Assert.NotNull(res.Response.Results[0].VariationsMap, "Variations Map exists");
}

[Test]
public async Task GetBrowseResultsShouldReturnResultWithVariationsMapStringValueCount()
{
BrowseRequest req = new BrowseRequest(this.FilterName, this.FilterValue)
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
"true"
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
BrowseResponse res = await constructorio.Browse.GetBrowseResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": \"true\" }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
Assert.NotNull(res.Response.Results[0].VariationsMap, "Variations Map exists");
}

[Test]
public async Task GetBrowseResultsShouldReturnResultWithVariationsMapBooleanValueCount()
{
BrowseRequest req = new BrowseRequest(this.FilterName, this.FilterValue)
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
true
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
BrowseResponse res = await constructorio.Browse.GetBrowseResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": true }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
Assert.NotNull(res.Response.Results[0].VariationsMap, "Variations Map exists");
}

[Test]
public async Task GetBrowseResultsShouldReturnResultWithVariationsMapIntegerValueCount()
{
BrowseRequest req = new BrowseRequest(this.FilterName, this.FilterValue)
{
UserInfo = UserInfo,
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
24
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
BrowseResponse res = await constructorio.Browse.GetBrowseResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": 24 }}, \"dtype\": \"object\" }"
);

Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
Assert.NotNull(res.Response.Results[0].VariationsMap, "Variations Map exists");
}

[Test]
public async Task GetBrowseResultsShouldReturnResultWithResultSources()
{
Expand Down
6 changes: 3 additions & 3 deletions src/Constructorio_NET.Tests/client/modules/CatalogTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public void ReplaceCatalogWithInvalidApiTokenShouldError()
var constructorio = new ConstructorIO(new ConstructorioConfig(ApiKey, "invalidKey"));
var req = new CatalogRequest(files);
var ex = Assert.ThrowsAsync<ConstructorException>(() => constructorio.Catalog.ReplaceCatalog(req));
Assert.IsTrue(ex.Message == "Http[401]: Invalid auth_token. If you've forgotten your token, you can generate a new one at app.constructor.io/dashboard", "Correct Error is Returned");
Assert.IsTrue(ex.Message == "Http[401]: Unauthorized");
}

[Test]
Expand Down Expand Up @@ -207,7 +207,7 @@ public void UpdateCatalogWithInvalidApiTokenShouldError()
var constructorio = new ConstructorIO(new ConstructorioConfig(ApiKey, "invalidKey"));
var req = new CatalogRequest(files);
var ex = Assert.ThrowsAsync<ConstructorException>(() => constructorio.Catalog.UpdateCatalog(req));
Assert.IsTrue(ex.Message == "Http[401]: Invalid auth_token. If you've forgotten your token, you can generate a new one at app.constructor.io/dashboard", "Correct Error is Returned");
Assert.IsTrue(ex.Message == "Http[401]: Unauthorized");
}

[Test]
Expand Down Expand Up @@ -307,7 +307,7 @@ public void PatchCatalogWithInvalidApiTokenShouldError()
var constructorio = new ConstructorIO(new ConstructorioConfig(ApiKey) { ApiToken = "invalidKey" });
var req = new CatalogRequest(files);
var ex = Assert.ThrowsAsync<ConstructorException>(() => constructorio.Catalog.PatchCatalog(req));
Assert.IsTrue(ex.Message == "Http[401]: Invalid auth_token. If you've forgotten your token, you can generate a new one at app.constructor.io/dashboard", "Correct Error is Returned");
Assert.IsTrue(ex.Message == "Http[401]: Unauthorized");
}

[Test]
Expand Down
105 changes: 105 additions & 0 deletions src/Constructorio_NET.Tests/client/modules/RecommendationsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,111 @@ public async Task GetRecommendationsResultsShouldReturnAResultWithVariationsMap(
}
}

[Test]
public async Task GetRecommendationsResultsShouldReturnAResultWithVariationsMapStringValueCount()
{
RecommendationsRequest req = new RecommendationsRequest("item_page_1")
{
UserInfo = this.UserInfo,
ItemIds = new List<string> { "power_drill" },
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
"true"
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
RecommendationsResponse res = await constructorio.Recommendations.GetRecommendationsResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": \"true\" }}, \"dtype\": \"object\" }"
);

Assert.GreaterOrEqual(res.Response.Results.Count, 0, "Results exist");
Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
foreach (var result in res.Response.Results)
{
Assert.NotNull(result.VariationsMap, "Variations Map exists in every result");
}
}

[Test]
public async Task GetRecommendationsResultsShouldReturnAResultWithVariationsMapBooleanValueCount()
{
RecommendationsRequest req = new RecommendationsRequest("item_page_1")
{
UserInfo = this.UserInfo,
ItemIds = new List<string> { "power_drill" },
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
true
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
RecommendationsResponse res = await constructorio.Recommendations.GetRecommendationsResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": true }}, \"dtype\": \"object\" }"
);

Assert.GreaterOrEqual(res.Response.Results.Count, 0, "Results exist");
Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
foreach (var result in res.Response.Results)
{
Assert.NotNull(result.VariationsMap, "Variations Map exists in every result");
}
}

[Test]
public async Task GetRecommendationsResultsShouldReturnAResultWithVariationsMapIntegerValueCount()
{
RecommendationsRequest req = new RecommendationsRequest("item_page_1")
{
UserInfo = this.UserInfo,
ItemIds = new List<string> { "power_drill" },
VariationsMap = new VariationsMap()
};
req.VariationsMap.AddValueRule(
"deactivated",
AggregationTypes.ValueCount,
"data.deactivated",
24
);
ConstructorIO constructorio = new ConstructorIO(this.Config);
RecommendationsResponse res = await constructorio.Recommendations.GetRecommendationsResults(req);
res.Request.TryGetValue("variations_map", out object reqVariationsMap);
JObject variationMapResult = JObject.Parse(
"{ \"group_by\": [], \"values\": { \"deactivated\": { \"aggregation\": \"value_count\", \"field\": \"data.deactivated\", \"value\": 24 }}, \"dtype\": \"object\" }"
);

Assert.GreaterOrEqual(res.Response.Results.Count, 0, "Results exist");
Assert.NotNull(res.ResultId, "Result id exists");
Assert.AreEqual(
JObject.Parse(reqVariationsMap.ToString()),
variationMapResult,
"Variations Map was passed as parameter"
);
foreach (var result in res.Response.Results)
{
Assert.NotNull(result.VariationsMap, "Variations Map exists in every result");
}
}

[Test]
public async Task GetRecommendationsResultsShouldReturnAResultWithVariationIds()
{
Expand Down
Loading
Loading