/* * Copyright 2012 Splunk, Inc. * * 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 com.splunk; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import java.util.*; public class ModularInputKindsTest extends SDKTestCase { private ResourceCollection<ModularInputKind> inputKinds; public void checkModularInputKind(ModularInputKind m) { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } if (m.getName().equals("test1")) { Assert.assertEquals("Test \"Input\" - 1", m.getTitle()); Assert.assertEquals("xml", m.getStreamingMode()); } else if (m.getName().equals("test2")) { Assert.assertEquals("test2", m.getTitle()); Assert.assertEquals("simple", m.getStreamingMode()); } } @Test public void testListInputKinds() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } for (ModularInputKind kind : inputKinds.values()) { checkModularInputKind(kind); } } @Test public void testInputByName() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind m; m = inputKinds.get("test1"); checkModularInputKind(m); m = inputKinds.get("test2"); checkModularInputKind(m); } @Test public void testNonexistantArg() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); Assert.assertFalse(test1.hasArgument("nonexistant_argument")); Assert.assertNull(test1.getArgument("nonexistant_argument")); } @Test public void testInputKindDescriptionAndTitle() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); String expectedDescription1 = "A description of test input 1 with special characters: //;!*%"; Assert.assertEquals(expectedDescription1, test1.getDescription()); Assert.assertEquals("Test \"Input\" - 1", test1.getTitle()); ModularInputKind test2 = inputKinds.get("test2"); Assert.assertEquals(null, test2.getDescription()); Assert.assertEquals("test2", test2.getTitle()); } @Test public void testArgDescription() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); ModularInputKindArgument arg; Map<String,String> expectedValues = new HashMap<String,String>(); expectedValues.put("key_id", "The key of the system"); expectedValues.put("no_description", null); expectedValues.put("empty_description", null); for (String key : expectedValues.keySet()) { Assert.assertTrue(test1.hasArgument(key)); arg = test1.getArgument(key); String expectedDescription = expectedValues.get(key); String foundDescription = arg.getDescription(); Assert.assertEquals(expectedDescription, foundDescription); } } @Test public void testArgDataType() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); ModularInputKindArgument arg; Map<String,ModularInputKindArgument.Type> expectedValues = new HashMap<String,ModularInputKindArgument.Type>(); expectedValues.put("number_field", ModularInputKindArgument.Type.NUMBER); expectedValues.put("boolean_field", ModularInputKindArgument.Type.BOOLEAN); expectedValues.put("string_field", ModularInputKindArgument.Type.STRING); for (String key : expectedValues.keySet()) { Assert.assertTrue(test1.hasArgument(key)); arg = test1.getArgument(key); Assert.assertEquals(expectedValues.get(key), arg.getType()); } } @Test public void testRequiredOnCreate() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); ModularInputKindArgument arg; Map<String,Boolean> expectedValues = new HashMap<String,Boolean>(); expectedValues.put("required_on_create", true); expectedValues.put("not_required_on_create", false); for (String key : expectedValues.keySet()) { Assert.assertTrue(test1.hasArgument(key)); arg = test1.getArgument(key); Assert.assertEquals((boolean) expectedValues.get(key), arg.getRequiredOnCreate()); } } @Test public void testRequiredOnEdit() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); ModularInputKindArgument arg; Map<String,Boolean> expectedValues = new HashMap<String,Boolean>(); expectedValues.put("arg_required_on_edit", true); expectedValues.put("not_required_on_edit", false); for (String key : expectedValues.keySet()) { Assert.assertTrue(test1.hasArgument(key)); arg = test1.getArgument(key); Assert.assertEquals((boolean) expectedValues.get(key), arg.getRequiredOnEdit()); } } @Test public void testGetArguments() { if (service.versionIsEarlierThan("5.0") || !hasTestData()) { return; } else { installApplicationFromTestData("modular-inputs"); inputKinds = service.getModularInputKinds(); } ModularInputKind test1 = inputKinds.get("test1"); Map<String, ModularInputKindArgument> args = test1.getArguments(); Set<String> expectedKeys = new HashSet<String>(); expectedKeys.add("name"); expectedKeys.add("resname"); expectedKeys.add("key_id"); expectedKeys.add("no_description"); expectedKeys.add("empty_description"); expectedKeys.add("arg_required_on_edit"); expectedKeys.add("not_required_on_edit"); expectedKeys.add("required_on_create"); expectedKeys.add("not_required_on_create"); expectedKeys.add("number_field"); expectedKeys.add("string_field"); expectedKeys.add("boolean_field"); Assert.assertEquals(expectedKeys, args.keySet()); } }