Added tests.
This commit is contained in:
parent
f9f219abe5
commit
cf2d964b6e
6 changed files with 226 additions and 7 deletions
|
@ -74,6 +74,13 @@ dependencies {
|
||||||
compile files('lib/owm-japis-2.5.0.5.jar')
|
compile files('lib/owm-japis-2.5.0.5.jar')
|
||||||
|
|
||||||
compileOnly semverJar
|
compileOnly semverJar
|
||||||
|
|
||||||
|
testCompile 'org.testng:testng:6.11'
|
||||||
|
testCompile 'org.assertj:assertj-core:3.8.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
test {
|
||||||
|
useTestNG()
|
||||||
}
|
}
|
||||||
|
|
||||||
annotationProcessor {
|
annotationProcessor {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.beust.kobalt.plugin.java.javadoc
|
||||||
import com.beust.kobalt.plugin.packaging.assemble
|
import com.beust.kobalt.plugin.packaging.assemble
|
||||||
import com.beust.kobalt.plugin.packaging.install
|
import com.beust.kobalt.plugin.packaging.install
|
||||||
import com.beust.kobalt.plugin.publish.autoGitTag
|
import com.beust.kobalt.plugin.publish.autoGitTag
|
||||||
|
import net.thauvin.erik.kobalt.plugin.versioneye.versionEye
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -80,6 +81,11 @@ val p = project {
|
||||||
compileOnly(processorJar)
|
compileOnly(processorJar)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependenciesTest {
|
||||||
|
compile("org.testng:testng:6.11")
|
||||||
|
compile("org.assertj:assertj-core:3.8.0")
|
||||||
|
}
|
||||||
|
|
||||||
apt {
|
apt {
|
||||||
outputDir = "../src/generated/java/"
|
outputDir = "../src/generated/java/"
|
||||||
}
|
}
|
||||||
|
@ -124,6 +130,11 @@ val p = project {
|
||||||
author = true
|
author = true
|
||||||
links("http://www.jibble.org/javadocs/pircbot/", "http://docs.oracle.com/javase/8/docs/api/")
|
links("http://www.jibble.org/javadocs/pircbot/", "http://docs.oracle.com/javase/8/docs/api/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
versionEye {
|
||||||
|
org = "thauvin"
|
||||||
|
team = "Owners"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Task(name = "deploy", dependsOn = arrayOf("assemble", "install"), description = "Deploy application")
|
@Task(name = "deploy", dependsOn = arrayOf("assemble", "install"), description = "Deploy application")
|
||||||
|
|
|
@ -143,6 +143,16 @@ final public class Utils {
|
||||||
return (Commands.LINK_CMD + (entryIndex + 1) + "T: " + entry.getPinboardTags().replaceAll(",", ", "));
|
return (Commands.LINK_CMD + (entryIndex + 1) + "T: " + entry.getPinboardTags().replaceAll(",", ", "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Capitalize a string.
|
||||||
|
*
|
||||||
|
* @param s The string.
|
||||||
|
* @return The capitalized string.
|
||||||
|
*/
|
||||||
|
public static String capitalize(final String s) {
|
||||||
|
return s.substring(0, 1).toUpperCase() + s.substring(1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensures that the given location (File/URL) has a trailing slash (<code>/</code>) to indicate a directory.
|
* Ensures that the given location (File/URL) has a trailing slash (<code>/</code>) to indicate a directory.
|
||||||
*
|
*
|
||||||
|
@ -169,7 +179,7 @@ final public class Utils {
|
||||||
/**
|
/**
|
||||||
* Returns a property as an int.
|
* Returns a property as an int.
|
||||||
*
|
*
|
||||||
* @param property The port property value.
|
* @param property The property value.
|
||||||
* @param def The default property value.
|
* @param def The default property value.
|
||||||
* @return The port or default value if invalid.
|
* @return The port or default value if invalid.
|
||||||
*/
|
*/
|
||||||
|
@ -300,7 +310,7 @@ final public class Utils {
|
||||||
* Returns the specified date formatted as <code>yyyy-MM-dd HH:mm</code>
|
* Returns the specified date formatted as <code>yyyy-MM-dd HH:mm</code>
|
||||||
*
|
*
|
||||||
* @param date The date.
|
* @param date The date.
|
||||||
* @return The fromatted date.
|
* @return The formatted date.
|
||||||
*/
|
*/
|
||||||
public static String utcDateTime(final LocalDateTime date) {
|
public static String utcDateTime(final LocalDateTime date) {
|
||||||
return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
|
return date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
|
||||||
|
|
|
@ -63,10 +63,6 @@ public class Weather2 extends AbstractModule {
|
||||||
properties.put(OWM_API_KEY_PROP, "");
|
properties.put(OWM_API_KEY_PROP, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String capitalize(final String s) {
|
|
||||||
return s.substring(0, 1).toUpperCase() + s.substring(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
|
@ -147,7 +143,7 @@ public class Weather2 extends AbstractModule {
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
condition.append(", ").append(w.getWeatherDescription());
|
condition.append(", ").append(w.getWeatherDescription());
|
||||||
} else {
|
} else {
|
||||||
condition.append(capitalize(w.getWeatherDescription()));
|
condition.append(Utils.capitalize(w.getWeatherDescription()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bot.send(sender, condition.toString(), isPrivate);
|
bot.send(sender, condition.toString(), isPrivate);
|
||||||
|
|
137
src/test/java/net/thauvin/erik/mobibot/UtilsTest.java
Normal file
137
src/test/java/net/thauvin/erik/mobibot/UtilsTest.java
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
/*
|
||||||
|
* UtilsTest.java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004-2017, Erik C. Thauvin (erik@thauvin.net)
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of this project nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
package net.thauvin.erik.mobibot;
|
||||||
|
|
||||||
|
import org.jibble.pircbot.Colors;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <code>Utils Test</code> class.
|
||||||
|
*
|
||||||
|
* @author <a href="https://erik.thauvin.net/" target="_blank">Erik C. Thauvin</a>
|
||||||
|
* @created 2017-05-30
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
|
public class UtilsTest {
|
||||||
|
final Calendar cal = Calendar.getInstance();
|
||||||
|
final LocalDateTime localDateTime =
|
||||||
|
LocalDateTime.of(1952, 2, 17, 12, 30, 0);
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void setUp() {
|
||||||
|
cal.set(1952, Calendar.FEBRUARY, 17, 12, 30, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBold() throws Exception {
|
||||||
|
assertThat(Utils.bold(1)).as("bold(1)").isEqualTo(Colors.BOLD + "1" + Colors.BOLD);
|
||||||
|
assertThat(Utils.bold("test")).as("bold(test").isEqualTo(Colors.BOLD + "test" + Colors.BOLD);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCapitalize() throws Exception {
|
||||||
|
assertThat(Utils.capitalize("test")).isEqualTo("Test");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEnsureDir() throws Exception {
|
||||||
|
assertThat(Utils.ensureDir("test", false)).as("ensureDir(test, false)")
|
||||||
|
.isEqualTo("test" + File.separatorChar);
|
||||||
|
assertThat(Utils.ensureDir("http://erik.thauvin.net", true))
|
||||||
|
.as("ensureDir(erik.thauvin.net, true)").isEqualTo("http://erik.thauvin.net/");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetIntProperty() throws Exception {
|
||||||
|
assertThat(Utils.getIntProperty("10", 1)).as("getIntProperty(10, 1)").isEqualTo(10);
|
||||||
|
assertThat(Utils.getIntProperty("a", 1)).as("getIntProperty(a, 1)").isEqualTo(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGreen() throws Exception {
|
||||||
|
assertThat(Utils.green("test")).isEqualTo(Colors.DARK_GREEN + "test" + Colors.NORMAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsValidString() throws Exception {
|
||||||
|
assertThat(Utils.isValidString("test")).as("isValidString(test)").isTrue();
|
||||||
|
assertThat(Utils.isValidString("")).as("isValidString(empty)").isFalse();
|
||||||
|
assertThat(Utils.isValidString(" ")).as("isValidString( )").isFalse();
|
||||||
|
assertThat(Utils.isValidString(" \t ")).as("isValidString(tab)").isFalse();
|
||||||
|
assertThat(Utils.isValidString(null)).as("isValidString(null)").isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsoLocalDate() throws Exception {
|
||||||
|
assertThat(Utils.isoLocalDate(cal.getTime())).as("isoLocalDate(date)").isEqualTo("1952-02-17");
|
||||||
|
assertThat(Utils.isoLocalDate(localDateTime)).as("isoLocalDate(localDate)").isEqualTo("1952-02-17");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testPlural() throws Exception {
|
||||||
|
assertThat(Utils.plural(1, "test", "tests")).as("plural(1, test, tests)")
|
||||||
|
.isEqualTo("test");
|
||||||
|
assertThat(Utils.plural(2, "test", "tests")).as("plural(2, test, tests)")
|
||||||
|
.isEqualTo("tests");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testReverseColor() throws Exception {
|
||||||
|
assertThat(Utils.reverseColor("test")).isEqualTo(Colors.REVERSE + "test" + Colors.REVERSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testToday() throws Exception {
|
||||||
|
assertThat(Utils.today()).isEqualTo(Utils.isoLocalDate(LocalDateTime.now()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUnescapeXml() throws Exception {
|
||||||
|
assertThat(Utils.unescapeXml("<a name="test & ''">"))
|
||||||
|
.isEqualTo("<a name=\"test & ''\">");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUtcDateTime() throws Exception {
|
||||||
|
assertThat(Utils.utcDateTime(cal.getTime())).as("utcDateTime(date)").isEqualTo("1952-02-17 12:30");
|
||||||
|
assertThat(Utils.utcDateTime(localDateTime)).as("utcDateTime(localDate)")
|
||||||
|
.isEqualTo("1952-02-17 12:30");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* LookupTest.java
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004-2017, Erik C. Thauvin (erik@thauvin.net)
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer in the documentation
|
||||||
|
* and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* Neither the name of this project nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software without
|
||||||
|
* specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
package net.thauvin.erik.mobibot.modules;
|
||||||
|
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The <code>Lookup Test</code> class.
|
||||||
|
*
|
||||||
|
* @author <a href="https://erik.thauvin.net/" target="_blank">Erik C. Thauvin</a>
|
||||||
|
* @created 2017-05-30
|
||||||
|
* @since 1.0
|
||||||
|
*/
|
||||||
|
public class LookupTest {
|
||||||
|
@Test
|
||||||
|
public void testLookup() throws Exception {
|
||||||
|
final String result = Lookup.lookup("erik.thauvin.net");
|
||||||
|
assertThat(result).as("lookup(erik.thauvin.net)").contains("104.31.77.12");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWhois() throws Exception {
|
||||||
|
final String[] result = Lookup.whois("17.178.96.59", Lookup.WHOIS_HOST);
|
||||||
|
assertThat(result).as("whois(17.178.96.59)")
|
||||||
|
.contains("Apple Inc. APPLE-WWNET (NET-17-0-0-0-1) 17.0.0.0 - 17.255.255.255");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue