Skip to content

Commit

Permalink
fixup! fixup! fixup! Added CURRENT_USER, 'USER and SESSION_USER` …
Browse files Browse the repository at this point in the history
…system functions.
  • Loading branch information
andreidan committed Jul 5, 2017
1 parent 16ac857 commit 8da56c9
Showing 1 changed file with 10 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

package io.crate.scalar.systeminformation;

import io.crate.action.sql.Option;
import io.crate.action.sql.SessionContext;
import io.crate.analyze.symbol.Symbol;
import io.crate.analyze.symbol.format.SymbolPrinter;
Expand All @@ -28,6 +27,7 @@
import io.crate.testing.SqlExpressions;
import org.junit.Test;

import javax.annotation.Nullable;
import java.util.Collections;

import static io.crate.testing.SymbolMatchers.isLiteral;
Expand All @@ -37,53 +37,52 @@ public class UserFunctionTest extends AbstractScalarFunctionsTest {

private static final User TEST_USER = new User("testUser", Collections.emptySet(), Collections.emptySet());

private void setupFunctionsForTestUser() {
SessionContext sessionContext = new SessionContext(0, Option.NONE, null, TEST_USER,
s -> {}, t -> {});
private void setupFunctionsFor(@Nullable User user) {
SessionContext sessionContext = new SessionContext(null, user, s -> {}, t -> {});
sqlExpressions = new SqlExpressions(tableSources, null, null, sessionContext,
new UsersScalarFunctionModule());
functions = sqlExpressions.functions();
}

@Test
public void testNormalizeCurrentUser() {
setupFunctionsForTestUser();
setupFunctionsFor(TEST_USER);
assertNormalize("current_user", isLiteral("testUser"), false);
}

@Test
public void testNormalizeSessionUser() {
setupFunctionsForTestUser();
setupFunctionsFor(TEST_USER);
assertNormalize("session_user", isLiteral("testUser"), false);
}

@Test
public void testNormalizeUser() {
setupFunctionsForTestUser();
setupFunctionsFor(TEST_USER);
assertNormalize("user", isLiteral("testUser"), false);
}

@Test
public void testCurrentUserForMissingUserReturnsNull() {
setupFunctionsWithoutUser();
setupFunctionsFor(null);
assertNormalize("current_user", isLiteral(null), false);
}

@Test
public void testUserForMissingUserReturnsNull() {
setupFunctionsWithoutUser();
setupFunctionsFor(null);
assertNormalize("user", isLiteral(null), false);
}

@Test
public void testSessionUserForMissingUserReturnsNull() {
setupFunctionsWithoutUser();
setupFunctionsFor(null);
assertNormalize("session_user", isLiteral(null), false);
}

@Test
public void testFormatFunctionsWithoutBrackets() {
setupFunctionsForTestUser();
setupFunctionsFor(TEST_USER);
SymbolPrinter printer = new SymbolPrinter(sqlExpressions.functions());
Symbol f = sqlExpressions.asSymbol("current_user");
assertThat(printer.printFullQualified(f), is("current_user"));
Expand All @@ -94,11 +93,4 @@ public void testFormatFunctionsWithoutBrackets() {
f = sqlExpressions.asSymbol("user");
assertThat(printer.printFullQualified(f), is("current_user"));
}

private void setupFunctionsWithoutUser() {
SessionContext sessionContext = new SessionContext(0, Option.NONE, null, null, null, null);
sqlExpressions = new SqlExpressions(tableSources, null, null, sessionContext, new UsersScalarFunctionModule());
functions = sqlExpressions.functions();
}
}

0 comments on commit 8da56c9

Please sign in to comment.