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')
|
||||
|
||||
compileOnly semverJar
|
||||
|
||||
testCompile 'org.testng:testng:6.11'
|
||||
testCompile 'org.assertj:assertj-core:3.8.0'
|
||||
}
|
||||
|
||||
test {
|
||||
useTestNG()
|
||||
}
|
||||
|
||||
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.install
|
||||
import com.beust.kobalt.plugin.publish.autoGitTag
|
||||
import net.thauvin.erik.kobalt.plugin.versioneye.versionEye
|
||||
import java.io.File
|
||||
import java.io.FileInputStream
|
||||
import java.util.*
|
||||
|
@ -80,6 +81,11 @@ val p = project {
|
|||
compileOnly(processorJar)
|
||||
}
|
||||
|
||||
dependenciesTest {
|
||||
compile("org.testng:testng:6.11")
|
||||
compile("org.assertj:assertj-core:3.8.0")
|
||||
}
|
||||
|
||||
apt {
|
||||
outputDir = "../src/generated/java/"
|
||||
}
|
||||
|
@ -124,6 +130,11 @@ val p = project {
|
|||
author = true
|
||||
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")
|
||||
|
|
|
@ -143,6 +143,16 @@ final public class Utils {
|
|||
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.
|
||||
*
|
||||
|
@ -169,7 +179,7 @@ final public class Utils {
|
|||
/**
|
||||
* Returns a property as an int.
|
||||
*
|
||||
* @param property The port property value.
|
||||
* @param property The property value.
|
||||
* @param def The default property value.
|
||||
* @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>
|
||||
*
|
||||
* @param date The date.
|
||||
* @return The fromatted date.
|
||||
* @return The formatted date.
|
||||
*/
|
||||
public static String utcDateTime(final LocalDateTime date) {
|
||||
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, "");
|
||||
}
|
||||
|
||||
private String capitalize(final String s) {
|
||||
return s.substring(0, 1).toUpperCase() + s.substring(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
|
@ -147,7 +143,7 @@ public class Weather2 extends AbstractModule {
|
|||
if (i != 0) {
|
||||
condition.append(", ").append(w.getWeatherDescription());
|
||||
} else {
|
||||
condition.append(capitalize(w.getWeatherDescription()));
|
||||
condition.append(Utils.capitalize(w.getWeatherDescription()));
|
||||
}
|
||||
}
|
||||
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