Я пытаюсь преобразовать ApiEmployee
в Employee
и написал тест вокруг него.Я смущен по поводу нулей в Котлине, поскольку я новичок в этом.
ApiEmployee
будет использоваться для преобразования в формате JSON, поэтому в нем может отсутствовать поле name
, или оно может быть пустым или может принимать значение NULL.В этом случае я не хочу добавлять в список и безопасно игнорировать его.
Я получаю Method threw 'kotlin.KotlinNullPointerException at exception.
в apiEmployee.name!!.isNotBlank()
ApiEmployee
data class ApiEmployee(val image: String? = "image",
val name: String? = "name test",
val description: String? = "",
val id: String? = "")
Сотрудник
data class Employee(val imagePath: String, val id: String)
EmployeeConverter (преобразует ApiEmployee в Employee)
fun apply(apiEmployees: List<ApiEmployee>): List<Employee> {
val employees = mutableListOf<Employee>()
for (apiEmployee in apiEmployees) {
if (apiEmployee.name!!.isNotBlank()){
employees.add(Employee(apiEmployee.image!!, apiEmployee.id!!)
}
}
}
EmployeeConverterTest
@Test
fun `should not add employee without name into employee list`() {
val invalidApiEmployee = ApiEmployee("image", null, "description", "id")
val convertedEmployees : List< Employee > = employeeConverter.apply(listOf( invalidApiEmployee))
assertThat(convertedEmployees.size).isEqualTo(0)
}