Made config fields private

This commit is contained in:
Erik C. Thauvin 2023-09-25 11:27:16 -07:00
parent 1761bb6825
commit 54d6ce6b52
3 changed files with 51 additions and 68 deletions

View file

@ -52,17 +52,17 @@ class CreateConfig private constructor(
**/
@Suppress("unused", "ArrayInDataClass")
data class Builder(
var domain: String = Constants.EMPTY,
var title: String = Constants.EMPTY,
var group_guid: String = Constants.EMPTY,
var tags: Array<String> = emptyArray(),
var deeplinks: Array<Map<String, String>> = emptyArray(),
var long_url: String = Constants.EMPTY,
var toJson: Boolean = false
private var domain: String = Constants.EMPTY,
private var title: String = Constants.EMPTY,
private var group_guid: String = Constants.EMPTY,
private var tags: Array<String> = emptyArray(),
private var deeplinks: Array<Map<String, String>> = emptyArray(),
private var long_url: String = Constants.EMPTY,
private var toJson: Boolean = false
) {
fun domain(domain: String) = apply { this.domain = domain }
fun title(title: String) = apply { this.title = title }
fun group_guid(group_guid: String) = apply { this.group_guid = group_guid }
fun groupGuid(group_guid: String) = apply { this.group_guid = group_guid }
fun tags(tags: Array<String>) = apply { this.tags = tags }
fun deeplinks(deeplinks: Array<Map<String, String>>) = apply { this.deeplinks = deeplinks }
fun longUrl(long_url: String) = apply { this.long_url = long_url }

View file

@ -59,32 +59,32 @@ class UpdateConfig private constructor(
**/
@Suppress("unused", "ArrayInDataClass")
data class Builder(
var bitlink: String = Constants.EMPTY,
var references: Map<String, String> = emptyMap(),
var archived: Boolean = false,
var tags: Array<String> = emptyArray(),
var created_at: String = Constants.EMPTY,
var title: String = Constants.EMPTY,
var deeplinks: Array<Map<String, String>> = emptyArray(),
var created_by: String = Constants.EMPTY,
var long_url: String = Constants.EMPTY,
var client_id: String = Constants.EMPTY,
var custom_bitlinks: Array<String> = emptyArray(),
var link: String = Constants.EMPTY,
var id: String = Constants.EMPTY,
var toJson: Boolean = false
private var bitlink: String = Constants.EMPTY,
private var references: Map<String, String> = emptyMap(),
private var archived: Boolean = false,
private var tags: Array<String> = emptyArray(),
private var created_at: String = Constants.EMPTY,
private var title: String = Constants.EMPTY,
private var deeplinks: Array<Map<String, String>> = emptyArray(),
private var created_by: String = Constants.EMPTY,
private var long_url: String = Constants.EMPTY,
private var client_id: String = Constants.EMPTY,
private var custom_bitlinks: Array<String> = emptyArray(),
private var link: String = Constants.EMPTY,
private var id: String = Constants.EMPTY,
private var toJson: Boolean = false
) {
fun bitlink(bitlink: String) = apply { this.bitlink = bitlink }
fun references(references: Map<String, String>) = apply { this.references = references }
fun archived(archived: Boolean) = apply { this.archived = archived }
fun tags(tags: Array<String>) = apply { this.tags = tags }
fun createdAt(created_at: String) = apply { this.created_at = created_at }
fun createdAt(createdAt: String) = apply { this.created_at = createdAt }
fun title(title: String) = apply { this.title = title }
fun deeplinks(deeplinks: Array<Map<String, String>>) = apply { this.deeplinks = deeplinks }
fun createdBy(created_by: String) = apply { this.created_by = created_by }
fun longUrl(long_url: String) = apply { this.long_url = long_url }
fun clientId(client_id: String) = apply { this.client_id = client_id }
fun customBitlinks(custom_bitlinks: Array<String>) = apply { this.custom_bitlinks = custom_bitlinks }
fun deepLinks(deepLinks: Array<Map<String, String>>) = apply { this.deeplinks = deepLinks }
fun createdBy(createdBy: String) = apply { this.created_by = createdBy }
fun longUrl(longUrl: String) = apply { this.long_url = longUrl }
fun clientId(clientId: String) = apply { this.client_id = clientId }
fun customBitlinks(customBitlinks: Array<String>) = apply { this.custom_bitlinks = customBitlinks }
fun link(link: String) = apply { this.link = link }
fun id(id: String) = apply { this.id = id }
fun toJson(toJson: Boolean) = apply { this.toJson = toJson }

View file

@ -33,15 +33,7 @@ package net.thauvin.erik.bitly
import assertk.all
import assertk.assertThat
import assertk.assertions.contains
import assertk.assertions.isEmpty
import assertk.assertions.isEqualTo
import assertk.assertions.isFalse
import assertk.assertions.isNotEqualTo
import assertk.assertions.isTrue
import assertk.assertions.matches
import assertk.assertions.prop
import assertk.assertions.startsWith
import assertk.assertions.*
import net.thauvin.erik.bitly.Utils.isValidUrl
import net.thauvin.erik.bitly.Utils.removeHttp
import net.thauvin.erik.bitly.Utils.toEndPoint
@ -51,11 +43,7 @@ import org.json.JSONObject
import org.junit.Before
import java.io.File
import java.util.logging.Level
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
import kotlin.test.assertTrue
import kotlin.test.*
class BitlyTest {
private val bitly = with(File("local.properties")) {
@ -219,18 +207,15 @@ class BitlyTest {
@Test
fun `create bitlink with config`() {
var config = CreateConfig.Builder().apply {
long_url = longUrl
}.build()
var config = CreateConfig.Builder().longUrl(longUrl).build()
assertThat(bitly.bitlinks().create(config), "create(config)")
.matches("https://\\w+.\\w{2}/\\w{7}".toRegex())
config = CreateConfig.Builder().apply {
domain = "bit.ly"
title = "Erik's Blog"
tags = arrayOf("erik", "thauvin", "blog", "weblog")
long_url = longUrl
}.build()
config = CreateConfig.Builder()
.domain("bit.ly")
.title("Erik's Blog")
.tags(arrayOf("erik", "thauvin", "blog", "weblog"))
.longUrl(longUrl).build()
assertEquals(
shortUrl,
bitly.bitlinks().create(config)
@ -263,36 +248,34 @@ class BitlyTest {
bl.update(shortUrl, link = longUrl)
assertThat(bl.lastCallResponse).prop(CallResponse::isSuccessful).isTrue()
assertEquals(Constants.FALSE, bl.update("bit.ly/407GjJU", id = "foo"))
assertEquals(Constants.FALSE, bl.update("bit.ly/407GjJU", id = "foo"))
}
@Test
fun `update bitlink with config`() {
val bl = bitly.bitlinks()
var config = UpdateConfig.Builder().apply {
bitlink(shortUrl)
title("Erik's Weblog")
tags(arrayOf("blog", "weblog"))
archived(true)
}.build()
var config = UpdateConfig.Builder()
.bitlink(shortUrl)
.title("Erik's Weblog")
.tags(arrayOf("blog", "weblog"))
.archived(true)
.build()
assertEquals(Constants.TRUE, bl.update(config))
config = UpdateConfig.Builder().apply {
bitlink(shortUrl)
toJson(true)
}.build()
config = UpdateConfig.Builder()
.bitlink(shortUrl)
.toJson(true)
.build()
assertThat(bl.update(config), "update(tags)").contains("\"tags\":[]")
config = UpdateConfig.Builder().apply {
bitlink(shortUrl)
link(longUrl)
}.build()
config = UpdateConfig.Builder()
.bitlink(shortUrl)
.link(longUrl)
.build()
assertEquals(Constants.TRUE, bl.update(config))
}
@Test