1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package xyz.driver.pdsuidomain.fakes.entities.rep
import java.time.LocalDate
import xyz.driver.core.generators
import xyz.driver.core.generators.{nextBoolean, nextDouble, nextOption, nextString}
import xyz.driver.pdsuicommon.domain.{TextJson, User}
import xyz.driver.pdsuidomain.entities.{Document, DocumentType, MedicalRecord, ProviderType}
import xyz.driver.pdsuidomain.fakes.entities.common.{nextLocalDate, nextLocalDateTime, nextLongId, nextStringId}
object DocumentGen {
implicit private class LocalDateOrdering(localData: LocalDate)
extends Ordered[LocalDate] {
override def compare(that: LocalDate): Int = {
this.localData.compareTo(that)
}
}
def nextDocumentStatus: Document.Status =
generators.oneOf[Document.Status](Document.Status.All)
def nextDocumentRequiredType: Document.RequiredType =
generators.oneOf[Document.RequiredType](Document.RequiredType.All)
def nextDocumentMeta: Document.Meta = {
val (startPage, endPage) = {
val startPage = nextDouble()
val endPage = nextDouble()
if (startPage > endPage) {
endPage -> startPage
}
else {
startPage -> endPage
}
}
Document.Meta(
nextOption(nextBoolean()), startPage, endPage
)
}
def nextDocument: Document = {
val dates = Common
.genBoundedRangeOption[LocalDate](nextLocalDate, nextLocalDate)
Document(
id = nextLongId[Document],
status = nextDocumentStatus,
previousStatus = nextOption(nextDocumentStatus),
assignee = nextOption(nextStringId[User]),
previousAssignee = nextOption(nextStringId[User]),
lastActiveUserId = nextOption(nextStringId[User]),
recordId = nextLongId[MedicalRecord],
physician = nextOption(nextString()),
typeId = nextOption(nextLongId[DocumentType]),
providerName = nextOption(nextString()),
providerTypeId = nextOption(nextLongId[ProviderType]),
requiredType = nextOption(nextDocumentRequiredType),
meta = nextOption(TextJson(nextDocumentMeta)),
startDate = dates._1,
endDate = dates._2,
lastUpdate = nextLocalDateTime
)
}
}
|