-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Kafka.DotNet.ksqlDB.Sample] - KSqlDbContextOptionsBuilder unit tests
- Loading branch information
1 parent
7888b25
commit 85862d8
Showing
1 changed file
with
162 additions
and
0 deletions.
There are no files selected for viewing
162 changes: 162 additions & 0 deletions
162
...ker.Kafka.Tests/Extensions/KSql/Query/Context/Options/KSqlDbContextOptionsBuilderTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
using System; | ||
using FluentAssertions; | ||
using Kafka.DotNet.ksqlDB.KSql.Query.Context.Options; | ||
using Kafka.DotNet.ksqlDB.KSql.Query.Options; | ||
using Kafka.DotNet.ksqlDB.KSql.RestApi.Parameters; | ||
using Kafka.DotNet.ksqlDB.Tests.Helpers; | ||
using Microsoft.VisualStudio.TestTools.UnitTesting; | ||
using UnitTests; | ||
using static System.String; | ||
|
||
namespace Kafka.DotNet.ksqlDB.Tests.Extensions.KSql.Query.Context.Options | ||
{ | ||
[TestClass] | ||
public class KSqlDbContextOptionsBuilderTests : TestBase<KSqlDbContextOptionsBuilder> | ||
{ | ||
[TestInitialize] | ||
public override void TestInitialize() | ||
{ | ||
base.TestInitialize(); | ||
|
||
ClassUnderTest = new KSqlDbContextOptionsBuilder(); | ||
} | ||
|
||
[TestMethod] | ||
[ExpectedException(typeof(ArgumentNullException))] | ||
public void UseKSqlDb_NullUrl_ThrowsArgumentNullException() | ||
{ | ||
//Arrange | ||
|
||
//Act | ||
var options = ClassUnderTest.UseKSqlDb(null).Options; | ||
|
||
//Assert | ||
} | ||
|
||
[TestMethod] | ||
[ExpectedException(typeof(ArgumentNullException))] | ||
public void UseKSqlDb_EmptyStringUrl_ThrowsArgumentNullException() | ||
{ | ||
//Arrange | ||
|
||
//Act | ||
var options = ClassUnderTest.UseKSqlDb(Empty).Options; | ||
|
||
//Assert | ||
} | ||
|
||
[TestMethod] | ||
public void UseKSqlDb_OptionsContainsFilledUrl() | ||
{ | ||
//Arrange | ||
|
||
//Act | ||
var options = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl).Options; | ||
|
||
//Assert | ||
options.Url.Should().BeEquivalentTo(TestParameters.KsqlDBUrl); | ||
} | ||
|
||
#region QueryStream | ||
|
||
[TestMethod] | ||
public void SetupQueryStream_OptionsQueryStreamParameters_AutoOffsetResetIsSetToDefault() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
|
||
//Act | ||
var options = setupParameters.SetupQueryStream(c => | ||
{ | ||
|
||
}).Options; | ||
|
||
//Assert | ||
options.QueryStreamParameters.Properties[QueryStreamParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo("earliest"); | ||
} | ||
|
||
[TestMethod] | ||
public void SetupQueryStreamNotCalled_OptionsQueryStreamParameters_AutoOffsetResetIsSetToDefault() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
string earliestAtoOffsetReset = AutoOffsetReset.Earliest.ToString().ToLower(); | ||
|
||
//Act | ||
var options = setupParameters.Options; | ||
|
||
//Assert | ||
options.QueryStreamParameters.Properties[QueryStreamParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo(earliestAtoOffsetReset); | ||
} | ||
|
||
[TestMethod] | ||
public void SetupQueryStream_AmendOptionsQueryStreamParametersProperty_AutoOffsetResetWasChanged() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
string latestAtoOffsetReset = AutoOffsetReset.Latest.ToString().ToLower(); | ||
|
||
//Act | ||
var options = setupParameters.SetupQueryStream(c => | ||
{ | ||
c.Properties[QueryStreamParameters.AutoOffsetResetPropertyName] = latestAtoOffsetReset; | ||
}).Options; | ||
|
||
//Assert | ||
options.QueryStreamParameters.Properties[QueryStreamParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo(latestAtoOffsetReset); | ||
} | ||
|
||
#endregion | ||
|
||
#region Query | ||
|
||
[TestMethod] | ||
public void SetupQuery_OptionsQueryParameters_AutoOffsetResetIsSetToDefault() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
|
||
//Act | ||
var options = setupParameters.SetupQuery(c => | ||
{ | ||
|
||
}).Options; | ||
|
||
//Assert | ||
options.QueryParameters.Properties[QueryParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo("earliest"); | ||
} | ||
|
||
[TestMethod] | ||
public void SetupQueryNotCalled_OptionsQueryParameters_AutoOffsetResetIsSetToDefault() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
string earliestAtoOffsetReset = AutoOffsetReset.Earliest.ToString().ToLower(); | ||
|
||
//Act | ||
var options = setupParameters.Options; | ||
|
||
//Assert | ||
options.QueryParameters.Properties[QueryParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo(earliestAtoOffsetReset); | ||
} | ||
|
||
[TestMethod] | ||
public void SetupQuery_AmendOptionsQueryParametersProperty_AutoOffsetResetWasChanged() | ||
{ | ||
//Arrange | ||
var setupParameters = ClassUnderTest.UseKSqlDb(TestParameters.KsqlDBUrl); | ||
string latestAtoOffsetReset = AutoOffsetReset.Latest.ToString().ToLower(); | ||
|
||
//Act | ||
var options = setupParameters.SetupQuery(c => | ||
{ | ||
c.Properties[QueryParameters.AutoOffsetResetPropertyName] = latestAtoOffsetReset; | ||
}).Options; | ||
|
||
//Assert | ||
options.QueryParameters.Properties[QueryParameters.AutoOffsetResetPropertyName].Should().BeEquivalentTo(latestAtoOffsetReset); | ||
} | ||
|
||
#endregion | ||
} | ||
} |