diff options
author | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-08-14 15:18:20 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@searchbox.com> | 2014-08-14 15:18:20 +0200 |
commit | 84c18742d3a6406e6c32648bdc656bb040d4f4ca (patch) | |
tree | e5758c1439dba9bdfd7bdedbdca3dd5d874a35dc /server/sonar-search/src/test | |
parent | bc2f5635cdda458553009460235705e48a394e7f (diff) | |
download | sonarqube-84c18742d3a6406e6c32648bdc656bb040d4f4ca.tar.gz sonarqube-84c18742d3a6406e6c32648bdc656bb040d4f4ca.zip |
fix quality flaw & added test for UpdateListScriptFactory
Diffstat (limited to 'server/sonar-search/src/test')
-rw-r--r-- | server/sonar-search/src/test/java/org/sonar/search/script/UpdateListScriptTest.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/server/sonar-search/src/test/java/org/sonar/search/script/UpdateListScriptTest.java b/server/sonar-search/src/test/java/org/sonar/search/script/UpdateListScriptTest.java new file mode 100644 index 00000000000..93cf4216439 --- /dev/null +++ b/server/sonar-search/src/test/java/org/sonar/search/script/UpdateListScriptTest.java @@ -0,0 +1,101 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2014 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.search.script; + +import org.elasticsearch.common.collect.ImmutableMap; +import org.elasticsearch.script.ExecutableScript; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +import static org.fest.assertions.Assertions.assertThat; +import static org.fest.assertions.Fail.fail; + +public class UpdateListScriptTest { + + ListUpdate.UpdateListScriptFactory factory; + + + @Before + public void setUp() throws Exception { + factory = new ListUpdate.UpdateListScriptFactory(); + } + + @Test + public void fail_missing_attributes_field() { + Map<String, Object> params = new HashMap<String, Object>(); + + // Missing everything + try { + factory.newScript(params); + fail(); + } catch (Exception e) { + assertThat(e.getMessage()).isEqualTo("Missing 'idField' parameter"); + } + + // Missing ID_VALUE + params.put(ListUpdate.ID_FIELD, "test"); + try { + factory.newScript(params); + fail(); + } catch (Exception e) { + assertThat(e.getMessage()).isEqualTo("Missing 'idValue' parameter"); + } + + // Missing FIELD + params.put(ListUpdate.ID_VALUE, "test"); + try { + factory.newScript(params); + fail(); + } catch (Exception e) { + assertThat(e.getMessage()).isEqualTo("Missing 'field' parameter"); + } + + // Has all required attributes and Null Value + params.put(ListUpdate.FIELD, "test"); + ExecutableScript script = factory.newScript(params); + assertThat(script).isNotNull(); + + // Has all required attributes and VALUE of wrong type + params.put(ListUpdate.VALUE, new Integer(52)); + try { + factory.newScript(params); + fail(); + } catch (Exception e) { + + } + + // Has all required attributes and Proper VALUE + params.put(ListUpdate.VALUE, ImmutableMap.of("key", "value")); + script = factory.newScript(params); + assertThat(script).isNotNull(); + + // Missing ID_FIELD + params.remove(ListUpdate.ID_FIELD); + try { + factory.newScript(params); + fail(); + } catch (Exception e) { + assertThat(e.getMessage()).isEqualTo("Missing 'idField' parameter"); + } + } +}
\ No newline at end of file |