diff --git a/.idea/kobalt.xml b/.idea/kobalt.xml index 74645f4..7f1760d 100644 --- a/.idea/kobalt.xml +++ b/.idea/kobalt.xml @@ -6,7 +6,7 @@ - + diff --git a/.idea/scopes/Source.xml b/.idea/scopes/Source.xml index cf7c1f7..942e059 100644 --- a/.idea/scopes/Source.xml +++ b/.idea/scopes/Source.xml @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/kobalt/Build.kt.iml b/kobalt/Build.kt.iml index 88a1538..430caa3 100644 --- a/kobalt/Build.kt.iml +++ b/kobalt/Build.kt.iml @@ -10,13 +10,22 @@ - + - + + + + + + + + + + - + @@ -29,14 +38,5 @@ - - - - - - - - - \ No newline at end of file diff --git a/kobalt/src/Build.kt b/kobalt/src/Build.kt index a44e06d..d030b58 100644 --- a/kobalt/src/Build.kt +++ b/kobalt/src/Build.kt @@ -57,8 +57,7 @@ val p = project { } dependenciesTest { - //compile("org.testng:testng:6.11") - //compile("org.jetbrains.kotlin:kotlin-test:1.1.2-3") + compile("org.testng:testng:6.12") } assemble { diff --git a/pinboard-poster.iml b/pinboard-poster.iml index a2f0d39..20330cb 100644 --- a/pinboard-poster.iml +++ b/pinboard-poster.iml @@ -13,27 +13,81 @@ - + - + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -48,5 +102,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/kotlin/net/thauvin/erik/pinboard/PinboardPosterTest.kt b/src/test/kotlin/net/thauvin/erik/pinboard/PinboardPosterTest.kt new file mode 100644 index 0000000..1514617 --- /dev/null +++ b/src/test/kotlin/net/thauvin/erik/pinboard/PinboardPosterTest.kt @@ -0,0 +1,72 @@ +/* + * PinboardPosterTest.kt + * + * Copyright (c) 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.pinboard + +import org.testng.Assert +import org.testng.annotations.Test +import java.io.FileInputStream +import java.util.* + +class PinboardPosterTest { + private val url = "http://www.foo.com/" + private val desc = "This is a test." + private val p = Properties().apply { FileInputStream("local.properties").use { fis -> load(fis) } } + private val apiToken = p.getProperty("pinboard-api-token") + + @Test + fun testAddPin() { + val poster = PinboardPoster("") + + Assert.assertFalse(poster.addPin(url, desc), "apiToken: ") + + Assert.assertFalse(poster.addPin(url, desc), "apiToken: ") + + //poster.apiToken = "foo:TESTING" + //Assert.assertFalse(poster.addPin(url, desc), "apiToken: ${poster.apiToken}") + + poster.apiToken = apiToken + Assert.assertTrue(poster.addPin(url, desc), "apiToken: $apiToken") + } + + @Test + fun testDeletePin() { + val poster = PinboardPoster(apiToken) + + poster.apiEndPoint = "" + Assert.assertFalse(poster.deletePin(url), "apiEndPoint: ") + + poster.apiEndPoint = Constants.API_ENDPOINT + Assert.assertTrue(poster.deletePin(url), "apiEndPoint: ${Constants.API_ENDPOINT}") + + Assert.assertFalse(poster.deletePin("foo.com"), "url: foo.com") + } +} \ No newline at end of file