Skip to content

Commit f36af81

Browse files
committed
Migrate Question validation tests
1 parent 4a1b201 commit f36af81

File tree

3 files changed

+67
-14
lines changed

3 files changed

+67
-14
lines changed

libpretixsync/src/main/sqldelight/common/eu/pretix/libpretixsync/sqldelight/Question.sq

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ SELECT *
33
FROM Question
44
WHERE server_id = ?;
55

6+
selectByEventSlug:
7+
SELECT *
8+
FROM Question
9+
WHERE event_slug = ?;
10+
611
selectForItem:
712
SELECT Question.*
813
FROM Question

libpretixsync/src/test/java/eu/pretix/libpretixsync/db/QuestionAnswerRequiredValidationTest.kt

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
package eu.pretix.libpretixsync.db
22

3+
import eu.pretix.libpretixsync.check.QuestionType
34
import org.junit.Assert.fail
45
import org.junit.Test
6+
import eu.pretix.libpretixsync.models.Question as QuestionModel
57

68

79
class QuestionAnswerRequiredValidationTest {
810

911
@Test
1012
@Throws(QuestionLike.ValidationException::class)
1113
fun testBoolean() {
12-
val q = Question()
13-
q.isRequired = true
14-
q.setJson_data("{\"id\":1,\"question\":{\"en\":\"Test\"},\"type\":\"B\",\"required\":true,\"items\":[1],\"options\":[],\"position\":0,\"ask_during_checkin\":false,\"identifier\":\"ABTBAB8S\",\"dependency_question\":null,\"dependency_value\":null}")
14+
val q = QuestionModel(
15+
question = "Test",
16+
type = QuestionType.B,
17+
required = true,
18+
identifier = "ABTBAB8S",
19+
eventSlug = "test",
20+
id = 1L,
21+
serverId = 1L,
22+
position = 0L,
23+
)
24+
1525
q.clean_answer("True", q.options, false)
1626

1727
try {
@@ -24,9 +34,17 @@ class QuestionAnswerRequiredValidationTest {
2434

2535
@Test
2636
fun testBooleanWithOptionalOverride() {
27-
val q = Question()
28-
q.isRequired = true
29-
q.setJson_data("{\"id\":1,\"question\":{\"en\":\"Test\"},\"type\":\"B\",\"required\":true,\"items\":[1],\"options\":[],\"position\":0,\"ask_during_checkin\":false,\"identifier\":\"ABTBAB8S\",\"dependency_question\":null,\"dependency_value\":null}")
37+
val q = QuestionModel(
38+
question = "Test",
39+
type = QuestionType.B,
40+
required = true,
41+
identifier = "ABTBAB8S",
42+
eventSlug = "test",
43+
id = 1L,
44+
serverId = 1L,
45+
position = 0L,
46+
)
47+
3048
try {
3149
q.clean_answer("False", q.options, true)
3250
} catch (e: QuestionLike.ValidationException) {
@@ -37,9 +55,17 @@ class QuestionAnswerRequiredValidationTest {
3755
@Test
3856
@Throws(QuestionLike.ValidationException::class)
3957
fun testText() {
40-
val q = Question()
41-
q.setJson_data("{\"id\":1,\"question\":{\"en\":\"Test\"},\"type\":\"T\",\"required\":true,\"items\":[1],\"options\":[],\"position\":0,\"ask_during_checkin\":false,\"identifier\":\"ABTBAB8S\",\"dependency_question\":null,\"dependency_value\":null}")
42-
q.isRequired = true
58+
val q = QuestionModel(
59+
question = "Test",
60+
type = QuestionType.T,
61+
required = true,
62+
identifier = "ABTBAB8S",
63+
eventSlug = "test",
64+
id = 1L,
65+
serverId = 1L,
66+
position = 0L,
67+
)
68+
4369
q.clean_answer("True", q.options, false)
4470
q.clean_answer("False", q.options, false)
4571
try {
@@ -51,9 +77,17 @@ class QuestionAnswerRequiredValidationTest {
5177

5278
@Test
5379
fun testTextWithOptionalOverride() {
54-
val q = Question()
55-
q.setJson_data("{\"id\":1,\"question\":{\"en\":\"Test\"},\"type\":\"T\",\"required\":true,\"items\":[1],\"options\":[],\"position\":0,\"ask_during_checkin\":false,\"identifier\":\"ABTBAB8S\",\"dependency_question\":null,\"dependency_value\":null}")
56-
q.isRequired = true
80+
val q = QuestionModel(
81+
question = "Test",
82+
type = QuestionType.T,
83+
required = true,
84+
identifier = "ABTBAB8S",
85+
eventSlug = "test",
86+
id = 1L,
87+
serverId = 1L,
88+
position = 0L,
89+
)
90+
5791
try {
5892
q.clean_answer("", q.options, true)
5993
} catch (e: QuestionLike.ValidationException) {

libpretixsync/src/test/java/eu/pretix/libpretixsync/db/QuestionAnswerValidationTest.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,29 @@ import org.junit.Assert.fail
66
import org.junit.Test
77
import org.junit.runner.RunWith
88
import org.junit.runners.Parameterized
9+
import eu.pretix.libpretixsync.models.Question as QuestionModel
910

1011

1112
@RunWith(Parameterized::class)
1213
class QuestionAnswerValidationTest(private val questionType: QuestionType, private val input: String, private val expected: String?) {
1314

1415
@Test
1516
fun test() {
16-
val q = Question()
17-
q.setJson_data("{\"id\":1,\"question\":{\"en\":\"Test\"},\"type\":\"$questionType\",\"required\":false,\"items\":[1],\"options\":[{\"id\": 3, \"answer\": \"A\", \"position\": 2, \"identifier\": \"AAA1\"}, {\"id\": 12, \"answer\": \"B\", \"position\": 1, \"identifier\": \"BBB2\"}],\"position\":0,\"ask_during_checkin\":false,\"identifier\":\"ABTBAB8S\",\"dependency_question\":null,\"dependency_value\":null}")
17+
val q = QuestionModel(
18+
type = questionType,
19+
required = false,
20+
question = "Test",
21+
identifier = "ABTBAB8S",
22+
askDuringCheckIn = false,
23+
options = listOf(
24+
QuestionOption(3L, 2, "AAA1", "A"),
25+
QuestionOption(12L, 1, "BBB2", "B"),
26+
),
27+
id = 1L,
28+
serverId = 1L,
29+
eventSlug = "",
30+
position = 0L,
31+
)
1832

1933
if (expected == null) {
2034
try {

0 commit comments

Comments
 (0)