Skip to content

Commit 1312e10

Browse files
committed
Add tests for XxxFlags.isSet
1 parent 29d5ba2 commit 1312e10

File tree

5 files changed

+83
-2
lines changed

5 files changed

+83
-2
lines changed

src/test/java/org/lmdbjava/CopyFlagSetTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.lmdbjava;
1717

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
1820
import java.util.Arrays;
1921
import java.util.Collection;
2022
import java.util.EnumSet;
@@ -72,4 +74,17 @@ Class<CopyFlags> getFlagType() {
7274
Function<EnumSet<CopyFlags>, CopyFlagSet> getConstructor() {
7375
return CopyFlagSetImpl::new;
7476
}
77+
78+
/**
79+
* {@link FlagSet#isSet(MaskedFlag)} on the flag enum is tested in {@link AbstractFlagSetTest} but the coverage check
80+
* doesn't seem to notice it.
81+
*/
82+
@Test
83+
void testIsSet() {
84+
assertThat(CopyFlags.MDB_CP_COMPACT.isSet(CopyFlags.MDB_CP_COMPACT))
85+
.isTrue();
86+
//noinspection ConstantValue
87+
assertThat(CopyFlags.MDB_CP_COMPACT.isSet(null))
88+
.isFalse();
89+
}
7590
}

src/test/java/org/lmdbjava/DbiFlagSetTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.lmdbjava;
1717

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
1820
import java.util.Arrays;
1921
import java.util.Collection;
2022
import java.util.EnumSet;
@@ -72,4 +74,19 @@ DbiFlagSet getFlagSet(DbiFlags flag) {
7274
Function<EnumSet<DbiFlags>, DbiFlagSet> getConstructor() {
7375
return DbiFlagSetImpl::new;
7476
}
77+
78+
/**
79+
* {@link FlagSet#isSet(MaskedFlag)} on the flag enum is tested in {@link AbstractFlagSetTest} but the coverage check
80+
* doesn't seem to notice it.
81+
*/
82+
@Test
83+
void testIsSet() {
84+
assertThat(DbiFlags.MDB_CREATE.isSet(DbiFlags.MDB_CREATE))
85+
.isTrue();
86+
assertThat(DbiFlags.MDB_CREATE.isSet(DbiFlags.MDB_REVERSEKEY))
87+
.isFalse();
88+
//noinspection ConstantValue
89+
assertThat(DbiFlags.MDB_CREATE.isSet(null))
90+
.isFalse();
91+
}
7592
}

src/test/java/org/lmdbjava/EnvFlagSetTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.lmdbjava;
1717

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
1820
import java.util.Arrays;
1921
import java.util.Collection;
2022
import java.util.EnumSet;
@@ -72,4 +74,19 @@ Class<EnvFlags> getFlagType() {
7274
Function<EnumSet<EnvFlags>, EnvFlagSet> getConstructor() {
7375
return EnvFlagSetImpl::new;
7476
}
77+
78+
/**
79+
* {@link FlagSet#isSet(MaskedFlag)} on the flag enum is tested in {@link AbstractFlagSetTest} but the coverage check
80+
* doesn't seem to notice it.
81+
*/
82+
@Test
83+
void testIsSet() {
84+
assertThat(EnvFlags.MDB_RDONLY_ENV.isSet(EnvFlags.MDB_RDONLY_ENV))
85+
.isTrue();
86+
assertThat(EnvFlags.MDB_RDONLY_ENV.isSet(EnvFlags.MDB_WRITEMAP))
87+
.isFalse();
88+
//noinspection ConstantValue
89+
assertThat(EnvFlags.MDB_RDONLY_ENV.isSet(null))
90+
.isFalse();
91+
}
7592
}

src/test/java/org/lmdbjava/PutFlagSetTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.lmdbjava;
1717

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
1820
import java.time.Duration;
1921
import java.time.Instant;
2022
import java.util.Arrays;
@@ -76,6 +78,21 @@ Function<EnumSet<PutFlags>, PutFlagSet> getConstructor() {
7678
return PutFlagSetImpl::new;
7779
}
7880

81+
/**
82+
* {@link FlagSet#isSet(MaskedFlag)} on the flag enum is tested in {@link AbstractFlagSetTest} but the coverage check
83+
* doesn't seem to notice it.
84+
*/
85+
@Test
86+
void testIsSet() {
87+
assertThat(PutFlags.MDB_APPEND.isSet(PutFlags.MDB_APPEND))
88+
.isTrue();
89+
assertThat(PutFlags.MDB_APPEND.isSet(PutFlags.MDB_MULTIPLE))
90+
.isFalse();
91+
//noinspection ConstantValue
92+
assertThat(PutFlags.MDB_APPEND.isSet(null))
93+
.isFalse();
94+
}
95+
7996
@Test
8097
public void testAddFlagVsCheckPresence() {
8198

src/test/java/org/lmdbjava/TxnFlagSetTest.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@
1515
*/
1616
package org.lmdbjava;
1717

18+
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.lmdbjava.TxnFlags.MDB_RDONLY_TXN;
20+
1821
import java.util.Arrays;
1922
import java.util.Collection;
2023
import java.util.EnumSet;
2124
import java.util.List;
2225
import java.util.function.Function;
2326
import java.util.stream.Collectors;
24-
import org.assertj.core.api.Assertions;
2527
import org.junit.jupiter.api.Test;
2628

2729
class TxnFlagSetTest extends AbstractFlagSetTest<TxnFlags, TxnFlagSet> {
@@ -30,7 +32,7 @@ class TxnFlagSetTest extends AbstractFlagSetTest<TxnFlags, TxnFlagSet> {
3032
void test() {
3133
// This is here purely to stop CodeQL moaning that this class is unused.
3234
// All the actual tests are in the superclass
33-
Assertions.assertThat(getAllFlags()).isNotNull();
35+
assertThat(getAllFlags()).isNotNull();
3436
}
3537

3638
@Override
@@ -72,4 +74,17 @@ Class<TxnFlags> getFlagType() {
7274
Function<EnumSet<TxnFlags>, TxnFlagSet> getConstructor() {
7375
return TxnFlagSetImpl::new;
7476
}
77+
78+
/**
79+
* {@link FlagSet#isSet(MaskedFlag)} on the flag enum is tested in {@link AbstractFlagSetTest} but the coverage check
80+
* doesn't seem to notice it.
81+
*/
82+
@Test
83+
void testIsSet() {
84+
assertThat(MDB_RDONLY_TXN.isSet(MDB_RDONLY_TXN))
85+
.isTrue();
86+
//noinspection ConstantValue
87+
assertThat(MDB_RDONLY_TXN.isSet(null))
88+
.isFalse();
89+
}
7590
}

0 commit comments

Comments
 (0)