Skip to content

Commit

Permalink
Add query descriptor unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeremy Norman committed Mar 2, 2019
1 parent 930e142 commit 0ada75e
Show file tree
Hide file tree
Showing 3 changed files with 175 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;

namespace Raygun.Druid4Net.Tests.Fluent.QueryDescriptors
{
[TestFixture]
public class ScanQueryDescriptorTests
{
[Test]
public void DefaultQuery_HasCorrectQueryType()
{
var request = new ScanQueryDescriptor().Generate();

Assert.That(request.RequestData.QueryType, Is.EqualTo("scan"));
}

[Test]
public void DataSourceIsSet_SetsDataSourceInBody()
{
var request = new ScanQueryDescriptor()
.DataSource("test_datasource")
.Generate();

Assert.That(request.RequestData.DataSource, Is.EqualTo("test_datasource"));
}

[Test]
public void ColumnsAreSetAsParameters_SetsColumnsInBody()
{
var request = new ScanQueryDescriptor()
.Columns("test_dim1", "test_dim2")
.Generate();

Assert.That(request.RequestData.Columns.Count(), Is.EqualTo(2));
Assert.That(request.RequestData.Columns, Contains.Item("test_dim1"));
Assert.That(request.RequestData.Columns, Contains.Item("test_dim2"));
}

[Test]
public void ColumnsAreSetAsEnumerable_SetsColumnsInBody()
{
var dimensions = new List<string> {"test_dim1", "test_dim2"};
var request = new ScanQueryDescriptor()
.Columns(dimensions)
.Generate();

Assert.That(request.RequestData.Columns.Count(), Is.EqualTo(2));
Assert.That(request.RequestData.Columns, Contains.Item("test_dim1"));
Assert.That(request.RequestData.Columns, Contains.Item("test_dim2"));
}

[Test]
public void LimitIsSet_SetsLimitInBody()
{
var request = new ScanQueryDescriptor()
.Limit(500)
.Generate();

Assert.That(request.RequestData.Limit, Is.EqualTo(500));
}

[Test]
public void BatchSizeIsSet_SetsBatchSizeInBody()
{
var request = new ScanQueryDescriptor()
.BatchSize(200)
.Generate();

Assert.That(request.RequestData.BatchSize, Is.EqualTo(200));
}

[TestCase(ScanResultFormat.List, "list")]
[TestCase(ScanResultFormat.CompactedList, "compactedList")]
public void ResultFormatIsSet_SetsResultFormatInBody(ScanResultFormat resultFormat, string expectedResult)
{
var request = new ScanQueryDescriptor()
.ResultFormat(resultFormat)
.Generate();

Assert.That(request.RequestData.ResultFormat, Is.EqualTo(expectedResult));
}

[Test]
public void ContextPropertiesAreSet_SetsContextInBody()
{
var request = new ScanQueryDescriptor()
.Context(
timeout: 60,
maxScatterGatherBytes: 100,
priority: 10,
queryId: "ABC",
useCache: false,
populateCache: false,
bySegment: true,
finalize: false,
chunkPeriod: "PT1H",
serializeDateTimeAsLong: true,
serializeDateTimeAsLongInner: false
).Generate();

var context = request.RequestData.Context;

Assert.IsNotNull(context);
Assert.That(context.Timeout, Is.EqualTo(60));
Assert.That(context.MaxScatterGatherBytes, Is.EqualTo(100));
Assert.That(context.Priority, Is.EqualTo(10));
Assert.That(context.QueryId, Is.EqualTo("ABC"));
Assert.That(context.UseCache, Is.False);
Assert.That(context.PopulateCache, Is.False);
Assert.That(context.BySegment, Is.True);
Assert.That(context.Finalize, Is.False);
Assert.That(context.ChunkPeriod, Is.EqualTo("PT1H"));
Assert.That(context.SerializeDateTimeAsLong, Is.True);
Assert.That(context.SerializeDateTimeAsLongInner, Is.False);
}

[Test]
public void InvervalIsSet_SetsIntervalsInBody()
{
var fromDate = DateTime.Parse("2017-10-01T14:45:22.123");
var toDate = DateTime.Parse("2017-10-02T10:35:21.345");
var request = new ScanQueryDescriptor()
.Interval(fromDate, toDate)
.Generate();

Assert.That(request.RequestData.Intervals[0], Is.EqualTo("2017-10-01T14:45:22.123Z/2017-10-02T10:35:21.345Z"));
}

[Test]
public void MultipleInvervalsAreSet_SetsIntervalsInBody()
{
var fromDate = DateTime.Parse("2017-10-01T14:45:22.123");
var toDate = DateTime.Parse("2017-10-02T10:35:21.345");
var request = new ScanQueryDescriptor()
.Intervals(new Interval(fromDate, toDate), new Interval(fromDate.AddMonths(1), toDate.AddMonths(1)))
.Generate();

Assert.That(request.RequestData.Intervals.Count, Is.EqualTo(2));
Assert.That(request.RequestData.Intervals[0], Is.EqualTo("2017-10-01T14:45:22.123Z/2017-10-02T10:35:21.345Z"));
Assert.That(request.RequestData.Intervals[1], Is.EqualTo("2017-11-01T14:45:22.123Z/2017-11-02T10:35:21.345Z"));
}

[Test]
public void IntervalsAreSetByEnumerable_SetsIntervalsInBody()
{
var fromDate = DateTime.Parse("2017-10-01T14:45:22.123");
var toDate = DateTime.Parse("2017-10-02T10:35:21.345");
var request = new ScanQueryDescriptor()
.Intervals(new List<Interval> { new Interval(fromDate, toDate)})
.Generate();

Assert.That(request.RequestData.Intervals.Count, Is.EqualTo(1));
Assert.That(request.RequestData.Intervals[0], Is.EqualTo("2017-10-01T14:45:22.123Z/2017-10-02T10:35:21.345Z"));
}

[Test]
public void BasicFilterIsSet_SetsFilterInBody()
{
var request = new ScanQueryDescriptor()
.Filter(new SelectorFilter("test_dim", "test_value"))
.Generate();

var filter = request.RequestData.Filter as SelectorFilter;

Assert.IsNotNull(filter);
Assert.That(filter.Type, Is.EqualTo("selector"));
Assert.That(filter.Dimension, Is.EqualTo("test_dim"));
Assert.That(filter.Value, Is.EqualTo("test_value"));
}
}
}
1 change: 1 addition & 0 deletions Raygun.Druid4Net.Tests/Raygun.Druid4Net.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
<Compile Include="Fluent\PostAggregations\FieldAccessPostAggregatorTests.cs" />
<Compile Include="Fluent\PostAggregations\FinalizingFieldAccessPostAggregatorTests.cs" />
<Compile Include="Fluent\QueryDescriptors\GroupByQueryDescriptorTests.cs" />
<Compile Include="Fluent\QueryDescriptors\ScanQueryDescriptorTests.cs" />
<Compile Include="Fluent\QueryDescriptors\SearchQueryDescriptorTests.cs" />
<Compile Include="Fluent\QueryDescriptors\SelectQueryDescriptorTests.cs" />
<Compile Include="Fluent\QueryDescriptors\TimeseriesQueryDescriptorTests.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class ScanQueryDescriptor : QueryDescriptor, IScanQueryDescriptor
public ScanQueryDescriptor()
{
ContextValue = new ContextSpec();
ResultFormatValue = "compactedList";
}

public IScanQueryDescriptor Columns(params string[] columns)
Expand Down

0 comments on commit 0ada75e

Please sign in to comment.