Skip to content

Commit 0c4ec24

Browse files
committed
WIP unit tests
1 parent 79d50be commit 0c4ec24

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authz/accesscontrol/IndicesPermissionTests.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.action.admin.indices.mapping.put.TransportAutoPutMappingAction;
1212
import org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction;
1313
import org.elasticsearch.action.search.TransportSearchAction;
14+
import org.elasticsearch.action.support.IndexComponentSelector;
1415
import org.elasticsearch.cluster.metadata.AliasMetadata;
1516
import org.elasticsearch.cluster.metadata.DataStream;
1617
import org.elasticsearch.cluster.metadata.DataStreamTestHelper;
@@ -757,6 +758,75 @@ public void testResourceAuthorizedPredicateAnd() {
757758
assertThat(predicate.test(concreteIndexD), is(true));
758759
}
759760

761+
public void testResourceAuthorizedPredicateAndWithFailures() {
762+
IndicesPermission.IsResourceAuthorizedPredicate predicate1 = new IndicesPermission.IsResourceAuthorizedPredicate(
763+
StringMatcher.of("c", "a"),
764+
StringMatcher.of("e", "f"),
765+
StringMatcher.of("b", "d")
766+
);
767+
IndicesPermission.IsResourceAuthorizedPredicate predicate2 = new IndicesPermission.IsResourceAuthorizedPredicate(
768+
StringMatcher.of("c", "b"),
769+
StringMatcher.of("a", "f", "g"),
770+
StringMatcher.of("a", "d")
771+
);
772+
Metadata.Builder mb = Metadata.builder(
773+
DataStreamTestHelper.getClusterStateWithDataStreams(
774+
List.of(
775+
Tuple.tuple("a", 1),
776+
Tuple.tuple("b", 1),
777+
Tuple.tuple("c", 1),
778+
Tuple.tuple("d", 1),
779+
Tuple.tuple("e", 1),
780+
Tuple.tuple("f", 1)
781+
),
782+
List.of(),
783+
Instant.now().toEpochMilli(),
784+
builder().build(),
785+
1
786+
).getMetadata()
787+
);
788+
DataStream dataStreamA = mb.dataStream("a");
789+
DataStream dataStreamB = mb.dataStream("b");
790+
DataStream dataStreamC = mb.dataStream("c");
791+
DataStream dataStreamD = mb.dataStream("d");
792+
DataStream dataStreamE = mb.dataStream("e");
793+
DataStream dataStreamF = mb.dataStream("f");
794+
IndexAbstraction concreteIndexA = concreteIndexAbstraction("a");
795+
IndexAbstraction concreteIndexB = concreteIndexAbstraction("b");
796+
IndexAbstraction concreteIndexC = concreteIndexAbstraction("c");
797+
IndexAbstraction concreteIndexD = concreteIndexAbstraction("d");
798+
IndexAbstraction concreteIndexE = concreteIndexAbstraction("e");
799+
IndexAbstraction concreteIndexF = concreteIndexAbstraction("f");
800+
IndicesPermission.IsResourceAuthorizedPredicate predicate = predicate1.and(predicate2);
801+
assertThat(predicate.test(dataStreamA), is(false));
802+
assertThat(predicate.test(dataStreamB), is(false));
803+
assertThat(predicate.test(dataStreamC), is(true));
804+
assertThat(predicate.test(dataStreamD), is(false));
805+
assertThat(predicate.test(dataStreamE), is(false));
806+
assertThat(predicate.test(dataStreamF), is(false));
807+
808+
assertThat(predicate.test(dataStreamA, IndexComponentSelector.FAILURES), is(false));
809+
assertThat(predicate.test(dataStreamB, IndexComponentSelector.FAILURES), is(false));
810+
assertThat(predicate.test(dataStreamC, IndexComponentSelector.FAILURES), is(false));
811+
assertThat(predicate.test(dataStreamD, IndexComponentSelector.FAILURES), is(false));
812+
assertThat(predicate.test(dataStreamE, IndexComponentSelector.FAILURES), is(false));
813+
assertThat(predicate.test(dataStreamF, IndexComponentSelector.FAILURES), is(true));
814+
815+
assertThat(predicate.test(concreteIndexA), is(true));
816+
assertThat(predicate.test(concreteIndexB), is(true));
817+
assertThat(predicate.test(concreteIndexC), is(true));
818+
assertThat(predicate.test(concreteIndexD), is(true));
819+
assertThat(predicate.test(concreteIndexE), is(false));
820+
assertThat(predicate.test(concreteIndexF), is(false));
821+
822+
assertThat(predicate.test(concreteIndexA, IndexComponentSelector.FAILURES), is(false));
823+
assertThat(predicate.test(concreteIndexB, IndexComponentSelector.FAILURES), is(false));
824+
assertThat(predicate.test(concreteIndexC, IndexComponentSelector.FAILURES), is(false));
825+
assertThat(predicate.test(concreteIndexD, IndexComponentSelector.FAILURES), is(false));
826+
assertThat(predicate.test(concreteIndexE, IndexComponentSelector.FAILURES), is(false));
827+
assertThat(predicate.test(concreteIndexF, IndexComponentSelector.FAILURES), is(true));
828+
}
829+
760830
private static IndexAbstraction concreteIndexAbstraction(String name) {
761831
return new IndexAbstraction.ConcreteIndex(
762832
IndexMetadata.builder(name).settings(indexSettings(IndexVersion.current(), 1, 0)).build()

0 commit comments

Comments
 (0)