Skip to content

Commit 331c054

Browse files
committed
fix: 빈 필터 토큰 null 바인딩 예외 방지
1 parent bf69662 commit 331c054

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

src/main/java/com/zimdugo/locker/application/filter/LockerSearchFilterFactory.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.zimdugo.locker.application.filter;
22

33
import com.zimdugo.locker.domain.search.LockerSearchFilter;
4+
import java.util.Objects;
45
import java.util.Set;
56
import java.util.stream.Collectors;
67

@@ -18,16 +19,19 @@ public static LockerSearchFilter create(
1819
sizeTypes == null
1920
? Set.of()
2021
: sizeTypes.stream()
22+
.filter(Objects::nonNull)
2123
.map(LockerSizeFilterType::toDomain)
2224
.collect(Collectors.toUnmodifiableSet()),
2325
indoorOutdoorTypes == null
2426
? Set.of()
2527
: indoorOutdoorTypes.stream()
28+
.filter(Objects::nonNull)
2629
.map(IndoorOutdoorFilterType::toDomain)
2730
.collect(Collectors.toUnmodifiableSet()),
2831
lockerTypes == null
2932
? Set.of()
3033
: lockerTypes.stream()
34+
.filter(Objects::nonNull)
3135
.map(LockerFacilityFilterType::toDomain)
3236
.collect(Collectors.toUnmodifiableSet())
3337
);
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.zimdugo.locker.application.filter;
2+
3+
import com.zimdugo.locker.domain.search.LockerSearchFilter;
4+
import java.util.HashSet;
5+
import java.util.Set;
6+
import org.junit.jupiter.api.DisplayName;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
class LockerSearchFilterFactoryTest {
12+
13+
@Test
14+
@DisplayName("빈 필터 토큰이 null로 바인딩되어도 무시하고 빈 필터로 처리한다")
15+
void ignoresNullFilterTokens() {
16+
Set<LockerSizeFilterType> sizeTypes = new HashSet<>();
17+
sizeTypes.add(null);
18+
19+
LockerSearchFilter filter = LockerSearchFilterFactory.create(sizeTypes, null, null);
20+
21+
assertThat(filter.isEmpty()).isTrue();
22+
assertThat(filter.sizeTypes()).isEmpty();
23+
}
24+
}

0 commit comments

Comments
 (0)