This is an automated email from the ASF dual-hosted git repository.

bereng pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 92baa924d4d2d09a6bae4ddb70add600562f1420
Merge: c648412 e8c6752
Author: Bereng <berenguerbl...@gmail.com>
AuthorDate: Fri Sep 24 08:36:20 2021 +0200

    Merge branch 'cassandra-4.0' into trunk

 .../apache/cassandra/auth/FunctionResource.java    |   5 +-
 .../cassandra/auth/FunctionResourceTest.java       | 116 +++++++++++++++++++++
 2 files changed, 120 insertions(+), 1 deletion(-)

diff --cc test/unit/org/apache/cassandra/auth/FunctionResourceTest.java
index 0000000,07a4b10..c3caedd
mode 000000,100644..100644
--- a/test/unit/org/apache/cassandra/auth/FunctionResourceTest.java
+++ b/test/unit/org/apache/cassandra/auth/FunctionResourceTest.java
@@@ -1,0 -1,117 +1,116 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ 
+ package org.apache.cassandra.auth;
+ 
+ import java.util.ArrayList;
+ import java.util.List;
+ 
+ import org.junit.Test;
+ 
+ import org.apache.cassandra.db.marshal.AbstractType;
+ import org.apache.cassandra.db.marshal.TypeParser;
+ 
+ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+ import static org.junit.Assert.assertEquals;
+ 
+ public class FunctionResourceTest
+ {
+     private static final String ks = "fr_ks";
+     private static final String func = "functions";
+     private static final String name = "concat";
+     private static final String varType = 
"org.apache.cassandra.db.marshal.UTF8Type";
+ 
+     @Test
+     public void testFunction() throws Exception
+     {
+         FunctionResource expected = FunctionResource.root();
+         FunctionResource actual = FunctionResource.fromName(func);
+         assertEquals(expected, actual);
+         assertEquals(expected.getName(), actual.getName());
+     }
+ 
+     @Test
+     public void testFunctionKeyspace() throws Exception
+     {
+         FunctionResource expected = FunctionResource.keyspace(ks);
+         FunctionResource actual = 
FunctionResource.fromName(String.format("%s/%s", func, ks));
+         assertEquals(expected, actual);
+         assertEquals(expected.getKeyspace(), actual.getKeyspace());
+     }
+ 
+     @Test
+     public void testFunctionWithSingleInputParameter() throws Exception
+     {
+         List<AbstractType<?>> argTypes = new ArrayList<>();
+         argTypes.add(TypeParser.parse(varType));
+         FunctionResource expected = FunctionResource.function(ks, name, 
argTypes);
+         FunctionResource actual = 
FunctionResource.fromName(String.format("%s/%s/%s[%s]", func, ks, name, 
varType));
+         assertEquals(expected, actual);
+         assertEquals(expected.getKeyspace(), actual.getKeyspace());
+     }
+ 
+     @Test
+     public void testFunctionWithMultipleInputParameter() throws Exception
+     {
+         List<AbstractType<?>> argTypes = new ArrayList<>();
+         argTypes.add(TypeParser.parse(varType));
+         argTypes.add(TypeParser.parse(varType));
+         FunctionResource expected = FunctionResource.function(ks, name, 
argTypes);
+         FunctionResource actual = 
FunctionResource.fromName(String.format("%s/%s/%s[%s^%s]", func, ks, name, 
varType, varType));
+         assertEquals(expected, actual);
+         assertEquals(expected.getKeyspace(), actual.getKeyspace());
+     }
+ 
+     @Test
+     public void testFunctionWithoutInputParameter() throws Exception
+     {
+         List<AbstractType<?>> argTypes = new ArrayList<>();
+         FunctionResource expected = FunctionResource.function(ks, name, 
argTypes);
+         FunctionResource actual = 
FunctionResource.fromName(String.format("%s/%s/%s[]", func, ks, name));
+         assertEquals(expected, actual);
+         assertEquals(expected.getKeyspace(), actual.getKeyspace());
+ 
+         String error = "functions/fr_ks/concat is not a valid function 
resource name. It must end with \"[]\"";
+         
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> 
FunctionResource.fromName(String.format("%s/%s/%s",
+                                                                               
                                             func,
+                                                                               
                                             ks,
+                                                                               
                                             name)))
+                                                                  
.withMessage(error);
+     }
+ 
+     @Test
+     public void testInvalidFunctionName()
+     {
+         String expected = "functions_test is not a valid function resource 
name";
+         
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> 
FunctionResource.fromName("functions_test"))
+                                                                  
.withMessage(expected);
+     }
+ 
+     @Test
+     public void testFunctionWithInvalidInput()
+     {
+         String expected = String.format("%s/%s/%s[%s]/test is not a valid 
function resource name", func, ks, name, varType);
+         
assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> 
FunctionResource.fromName(String.format("%s/%s/%s[%s]/test",
+                                                                               
                                             func,
+                                                                               
                                             ks,
+                                                                               
                                             name,
+                                                                               
                                             varType)))
+                                                                  
.withMessage(expected);
 -        ;
+     }
+ }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to