|
package com.conizzoli.demo; |
|
|
|
import static org.junit.jupiter.api.Assertions.*; |
|
|
|
import java.util.stream.Stream; |
|
import org.junit.jupiter.params.ParameterizedTest; |
|
import org.junit.jupiter.params.provider.Arguments; |
|
import org.junit.jupiter.params.provider.MethodSource; |
|
|
|
public class SolutionTest { |
|
@ParameterizedTest |
|
@MethodSource("provideFilterRequestsUseCases") |
|
void itFiltersRequests(String[] filters, String[] requests, int[] expectedResult) { |
|
int[] results = Solution.filterRequests(filters, requests); |
|
assertArrayEquals(expectedResult, results); |
|
} |
|
|
|
static Stream<Arguments> provideFilterRequestsUseCases() { |
|
return Stream.of( |
|
Arguments.of(new String[]{"192.168.*.*"}, new String[]{"192.168.1.1", "192.169.1.1"}, new int[]{0, 1}), |
|
Arguments.of(new String[]{"10.0.*.*", "172.16.1.*"}, new String[]{"10.0.0.1", "172.16.1.2", "172.16.2.1"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{}, new String[]{"8.8.8.8", "1.1.1.1"}, new int[]{1, 1}), |
|
Arguments.of(new String[]{"*.*.*.*"}, new String[]{"192.168.1.1", "10.0.0.1"}, new int[]{0, 0}), |
|
Arguments.of(new String[]{"192.168.1.*", "10.*.*.*"}, new String[]{"192.168.1.100", "10.1.1.1", "172.16.0.1"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{"172.20.*.*", "192.168.1.1"}, new String[]{"172.20.1.1", "192.168.1.1", "192.168.1.2"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{"192.*.*.1", "10.10.*.*"}, new String[]{"192.168.0.1", "10.10.1.1", "192.168.1.2"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{"172.16.*.1", "192.168.2.*"}, new String[]{"172.16.0.1", "192.168.2.2", "172.16.1.2"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{"*.*.1.1", "*.*.2.2"}, new String[]{"192.168.1.1", "10.0.2.2", "172.16.3.3"}, new int[]{0, 0, 1}), |
|
Arguments.of(new String[]{"192.168.1.1", "10.0.0.*", "172.16.*.2"}, new String[]{"192.168.1.1", "10.0.0.2", "172.16.1.2", "172.17.1.2"}, new int[]{0, 0, 0, 1}), |
|
|
|
Arguments.of(new String[]{}, new String[]{"192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1"}, new int[]{1, 0, 0, 0, 0, 1}), |
|
Arguments.of(new String[]{}, new String[]{"192.168.1.1", "10.0.0.1", "192.168.1.1", "10.0.0.1", "192.168.1.1", "10.0.0.1"}, new int[]{1, 1, 0, 0, 0, 0}), |
|
Arguments.of(new String[]{}, new String[]{"192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1"}, new int[]{1, 0, 0, 0, 0, 1, 0, 0, 0, 0}) |
|
); |
|
} |
|
} |