From fc7122fee1d0264360a18bc307a1647ce372498c Mon Sep 17 00:00:00 2001 From: elliVM <126466762+elliVM@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:01:29 +0300 Subject: [PATCH] fix bug withoutFilter option (#96) * fix bug withoutFilter option used bloom.enabled option * test bloom options in ArchiveConfigTest * apply spotless * make test class public --- .../teragrep/pth_06/config/ArchiveConfig.java | 2 +- .../pth_06/config/ArchiveConfigTest.java | 118 ++++++++++++++++++ 2 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/teragrep/pth_06/config/ArchiveConfigTest.java diff --git a/src/main/java/com/teragrep/pth_06/config/ArchiveConfig.java b/src/main/java/com/teragrep/pth_06/config/ArchiveConfig.java index 6c5b4752..dd057924 100644 --- a/src/main/java/com/teragrep/pth_06/config/ArchiveConfig.java +++ b/src/main/java/com/teragrep/pth_06/config/ArchiveConfig.java @@ -80,7 +80,7 @@ public ArchiveConfig(Map opts) { dbPassword = getOrThrow(opts, "DBpassword"); dbUrl = getOrThrow(opts, "DBurl"); bloomEnabled = opts.getOrDefault("bloom.enabled", "false").equalsIgnoreCase("true"); - withoutFilters = opts.getOrDefault("bloom.enabled", "false").equalsIgnoreCase("true"); + withoutFilters = opts.getOrDefault("bloom.withoutFilters", "false").equalsIgnoreCase("true"); bloomDbName = opts.getOrDefault("DBbloomdbname", "bloomdb"); dbJournalDbName = opts.getOrDefault("DBjournaldbname", "journaldb"); diff --git a/src/test/java/com/teragrep/pth_06/config/ArchiveConfigTest.java b/src/test/java/com/teragrep/pth_06/config/ArchiveConfigTest.java new file mode 100644 index 00000000..b36204f5 --- /dev/null +++ b/src/test/java/com/teragrep/pth_06/config/ArchiveConfigTest.java @@ -0,0 +1,118 @@ +/* + * Teragrep Archive Datasource (pth_06) + * Copyright (C) 2021-2024 Suomen Kanuuna Oy + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * + * Additional permission under GNU Affero General Public License version 3 + * section 7 + * + * If you modify this Program, or any covered work, by linking or combining it + * with other code, such other code is not for that reason alone subject to any + * of the requirements of the GNU Affero GPL version 3 as long as this Program + * is the same Program as licensed from Suomen Kanuuna Oy without any additional + * modifications. + * + * Supplemented terms under GNU Affero General Public License version 3 + * section 7 + * + * Origin of the software must be attributed to Suomen Kanuuna Oy. Any modified + * versions must be marked as "Modified version of" The Program. + * + * Names of the licensors and authors may not be used for publicity purposes. + * + * No rights are granted for use of trade names, trademarks, or service marks + * which are in The Program if any. + * + * Licensee must indemnify licensors and authors for any liability that these + * contractual assumptions impose on licensors and authors. + * + * To the extent this program is licensed as part of the Commercial versions of + * Teragrep, the applicable Commercial License may apply to this file if you as + * a licensee so wish it. + */ +package com.teragrep.pth_06.config; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; + +public class ArchiveConfigTest { + + @Test + public void testBloomEnabledDefaultOff() { + Map opts = options(); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertFalse(defaultConfig.bloomEnabled); + } + + @Test + public void testWithoutFiltersDefaultOff() { + Map opts = options(); + opts.put("bloom.enabled", "true"); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertFalse(defaultConfig.withoutFilters); + } + + @Test + public void testBloomEnabled() { + Map opts = options(); + opts.put("bloom.enabled", "true"); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertTrue(defaultConfig.bloomEnabled); + } + + @Test + public void testWithoutFilters() { + Map opts = options(); + opts.put("bloom.withoutFilters", "true"); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertTrue(defaultConfig.withoutFilters); + Assertions.assertFalse(defaultConfig.bloomEnabled); + } + + @Test + public void testWithoutFiltersBloomEnabled() { + Map opts = options(); + opts.put("bloom.enabled", "true"); + opts.put("bloom.withoutFilters", "true"); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertTrue(defaultConfig.withoutFilters); + Assertions.assertTrue(defaultConfig.bloomEnabled); + } + + @Test + public void testWithoutFiltersDefaultBloomEnabled() { + Map opts = options(); + opts.put("bloom.enabled", "true"); + ArchiveConfig defaultConfig = new ArchiveConfig(opts); + Assertions.assertFalse(defaultConfig.withoutFilters); + Assertions.assertTrue(defaultConfig.bloomEnabled); + } + + // provides minimal options needed to avoid exceptions + private Map options() { + Map opts = new HashMap<>(); + opts.put("S3endPoint", "S3endPoint"); + opts.put("S3identity", "S3identity"); + opts.put("S3credential", "S3credential"); + opts.put("DBusername", "DBusername"); + opts.put("DBpassword", "DBpassword"); + opts.put("DBurl", "DBurl"); + return opts; + } +}