Skip to content
Snippets Groups Projects
Commit 8fa05f62 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Add String BiCreater Combine + Tests

parent 28799703
No related branches found
No related tags found
No related merge requests found
......@@ -35,11 +35,9 @@ public class BiCreaterStringCombine extends AbstractBoundaryBiCreater<StringBoun
Set<String> values = new HashSet<>();
if (b1.matchesNoneOfValues() && b2.matchesNoneOfValues()) {
values = intersection(b1.getValues(), b2.getValues());
}
if (b1.matchesNoneOfValues()) {
} else if (b1.matchesNoneOfValues()) {
values = leftInter(b1.getValues(), b2.getValues());
}
if (b2.matchesNoneOfValues()) {
} else if (b2.matchesNoneOfValues()) {
values = leftInter(b2.getValues(), b1.getValues());
}
return Optional.of(
......
......@@ -192,10 +192,6 @@ public class StringBoundary extends AbstractBoundary<String> {
public Builder isMatchAny(boolean matchAny) {
value.matchAny = matchAny;
if (matchAny) {
value.matchNoneOfValues = false;
value.values = new String[0];
}
return this;
}
......@@ -224,6 +220,10 @@ public class StringBoundary extends AbstractBoundary<String> {
@Override
public StringBoundary build() {
value.values = buildingValues.toArray(new String[0]);
if (value.matchAny) {
value.matchNoneOfValues = false;
value.values = new String[0];
}
value.calcHashes();
value.text = value.getParsedText();
return super.build();
......
package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
import static de.unikoblenz.fgbks.base.utils.boundary.bicreater.BoundaryBiCreaterType.COMBINE;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
@QuarkusTest
class BiCreaterStringCombineTest {
StringBoundary sb1;
StringBoundary sb2;
StringBoundary sbR;
@Test
void testCreater() {
sb1 = StringBoundary.getBuilder().addValue("a").build();
sb2 = StringBoundary.getBuilder().addValue("b").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{"a", "b"}, sbR.getValues());
assertFalse(sbR.matchesNoneOfValues());
assertFalse(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
sb2 = StringBoundary.getBuilder().addValue("b").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{"a"}, sbR.getValues());
assertTrue(sbR.matchesNoneOfValues());
assertFalse(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").addValue("b").build();
sb2 = StringBoundary.getBuilder().addValue("b").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{"a"}, sbR.getValues());
assertTrue(sbR.matchesNoneOfValues());
assertFalse(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().addValue("b").build();
sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").addValue("b").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{"a"}, sbR.getValues());
assertTrue(sbR.matchesNoneOfValues());
assertFalse(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{}, sbR.getValues());
assertFalse(sbR.matchesNoneOfValues());
assertTrue(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").addValue("a").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{"a"}, sbR.getValues());
assertTrue(sbR.matchesNoneOfValues());
assertFalse(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchAny(true).build();
sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").addValue("a").build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{}, sbR.getValues());
assertFalse(sbR.matchesNoneOfValues());
assertTrue(sbR.isMatchAny());
sb1 = StringBoundary.getBuilder().isMatchAny(true).build();
sb2 = StringBoundary.getBuilder().isMatchAny(true).build();
sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
assertArrayEquals(new String[]{}, sbR.getValues());
assertFalse(sbR.matchesNoneOfValues());
assertTrue(sbR.isMatchAny());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment