You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.8 KiB
62 lines
1.8 KiB
package com.xsn.explorer.models
|
|
|
|
import org.scalatest.{MustMatchers, OptionValues, WordSpec}
|
|
|
|
class AddressSpec extends WordSpec with MustMatchers with OptionValues {
|
|
|
|
"from" should {
|
|
"allow to create a legacy address" in {
|
|
val input = "Xvjue2ZLnJwTrSLUBx7DTHaSHTdpWrxtLF"
|
|
val result = Address.from(input)
|
|
result.value.string mustEqual input
|
|
}
|
|
|
|
"allow to create a P2WPKH address" in {
|
|
val input = "bc1qzhayf65p2j4h3pfw22aujgr5w42xfqzx5uvddt"
|
|
val result = Address.from(input)
|
|
result.value.string mustEqual input
|
|
}
|
|
|
|
"reject an empty string" in {
|
|
val input = ""
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject whitespaces" in {
|
|
val input = " Xvjue2ZLnJwTrSLUBx7DTHaSHTdpWrxtLF "
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject invalid characters" in {
|
|
val input = "bc1qzhayf65p2j4h3pfw22aujgr5w42xfqzx.uvddt"
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject invalid address, 1 character missing" in {
|
|
val input = "Xvjue2ZLnJwTrSLUBx7DTHaSHTdpWrxtL"
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject invalid address, 1 extra character" in {
|
|
val input = "Xvjue2ZLnJwTrSLUBx7DTHaSHTdpWrxtLFf"
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject invalid address, 1 character missing on P2WPKH" in {
|
|
val input = "bc1qzhayf65p2j4h3pfw22aujgr5w42xfqzx5uvdd"
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
|
|
"reject invalid address, 1 extra character on P2WPKH" in {
|
|
val input = "bc1qzhayf65p2j4h3pfw22aujgr5w42xfqzx5uvddt1"
|
|
val result = Address.from(input)
|
|
result mustEqual Option.empty
|
|
}
|
|
}
|
|
}
|
|
|