public void CreateInstance_PropertyNameCaseInsensitive()
    {
        //Arrange
        var options = KSqlDbJsonSerializerOptions.CreateInstance();

        //Act
        var propertyNameCaseInsensitive = options.PropertyNameCaseInsensitive;

        //Assert
        propertyNameCaseInsensitive.Should().BeTrue();
    }
    public void CreateInstance_Converters()
    {
        //Arrange
        var options = KSqlDbJsonSerializerOptions.CreateInstance();

        //Act
        var converters = options.Converters;

        //Assert
        converters.OfType <TimeSpanToStringConverter>().Any().Should().BeTrue();
    }
    public void Write()
    {
        //Arrange
        var converter = new TimeSpanToStringConverter();

        using var stream = new MemoryStream();
        using var writer = new Utf8JsonWriter(stream);

        var options = KSqlDbJsonSerializerOptions.CreateInstance();

        var timeSpan = new TimeSpan(1, 1, 11);

        //Act
        converter.Write(writer, timeSpan, options);
        writer.Flush();

        //Assert
        stream.ToArray().Length.Should().NotBe(0);
    }
    /// <summary>
    /// Interception of JsonSerializerOptions.
    /// </summary>
    /// <param name="optionsAction">Action to configure the JsonSerializerOptions for the materialization of the incoming values.</param>
    /// <returns>The original KSqlDb context options builder</returns>
    public void SetJsonSerializerOptions(Action <JsonSerializerOptions> optionsAction)
    {
        JsonSerializerOptions ??= KSqlDbJsonSerializerOptions.CreateInstance();

        optionsAction?.Invoke(JsonSerializerOptions);
    }