/** * PermissionsEx * Copyright (C) zml and PermissionsEx contributors * * Licensed 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 ninja.leaping.permissionsex.util; import static org.junit.Assert.assertEquals; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class NodeTreeTest { @Test public void testAsMap() { final Map<String, Integer> testPermissions = new HashMap<>(); testPermissions.put("generate.rainbow", 1); testPermissions.put("generate.sunset", -1); testPermissions.put("generate", 1); testPermissions.put("generate.thunderstorm.explosive", -1); NodeTree oldTree = NodeTree.of(testPermissions); assertEquals(testPermissions, oldTree.asMap()); } @Test public void testWithValue() throws Exception { final Map<String, Integer> testPermissions = new HashMap<>(); testPermissions.put("generate.rainbow", 1); testPermissions.put("generate.sunset", -1); testPermissions.put("generate", 1); testPermissions.put("generate.thunderstorm.explosive", -1); NodeTree oldTree = NodeTree.of(testPermissions); assertEquals(-1, oldTree.get("generate.thunderstorm.explosive")); NodeTree newTree = oldTree.withValue("generate.thunderstorm.explosive", 1); assertEquals(-1, oldTree.get("generate.thunderstorm.explosive")); assertEquals(1, newTree.get("generate.thunderstorm.explosive")); } @Test public void testWithAll() throws Exception { final Map<String, Integer> testPermissions = new HashMap<>(); testPermissions.put("generate.rainbow", 1); testPermissions.put("generate.sunset", -1); testPermissions.put("generate", 1); testPermissions.put("generate.thunderstorm.explosive", -1); NodeTree oldTree = NodeTree.of(testPermissions); final Map<String, Integer> newPermissions = new HashMap<>(); newPermissions.put("generate.sunset.red", 1); newPermissions.put("generate.thunderstorm.explosive", 0); newPermissions.put("something.new", -1); NodeTree newTree = oldTree.withAll(newPermissions); assertEquals(-1, oldTree.get("generate.sunset.red")); assertEquals(1, newTree.get("generate.sunset.red")); assertEquals(-1, oldTree.get("generate.thunderstorm.explosive")); assertEquals(0, newTree.get("generate.thunderstorm.explosive")); assertEquals(0, oldTree.get("something.new")); assertEquals(-1, newTree.get("something.new")); } @Test public void testCreateFromValues() throws Exception { final Map<String, Integer> testPermissions = new HashMap<>(); testPermissions.put("generate.rainbow", 1); testPermissions.put("generate.sunset", -1); testPermissions.put("generate", 1); testPermissions.put("generate.thunderstorm.explosive", -1); NodeTree nodes = NodeTree.of(testPermissions, 0); assertEquals(1, nodes.get("generate.rainbow")); assertEquals(1, nodes.get("generate.rainbow.double")); assertEquals(-1, nodes.get("generate.sunset")); assertEquals(-1, nodes.get("generate.sunset.east")); assertEquals(1, nodes.get("generate.thunderstorm")); assertEquals(-1, nodes.get("generate.thunderstorm.explosive")); assertEquals(0, nodes.get("random.perm")); } }