Skip to content

Commit

Permalink
fix MAC vendor search to be case insensitive (Issue #222)
Browse files Browse the repository at this point in the history
  • Loading branch information
VREMSoftwareDevelopment committed Nov 29, 2018
1 parent f619865 commit e5233ba
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 15 deletions.
6 changes: 3 additions & 3 deletions app/build.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#Build Properties
#Sat Nov 24 09:14:14 EST 2018
#Thu Nov 29 08:05:10 EST 2018
version_minor=0
version_build=0
version_build=1
version_patch=3
version_store=44
version_major=2
version_store=44
Original file line number Diff line number Diff line change
Expand Up @@ -61,21 +61,25 @@ public List<String> findMacAddresses(String vendorName) {
if (StringUtils.isBlank(vendorName)) {
return new ArrayList<>();
}
List<String> results = getVendors().get(vendorName);
List<String> results = getVendors().get(vendorName.toUpperCase());
return results == null ? new ArrayList<>() : results;
}

@NonNull
@Override
public List<String> findVendors() {
return new ArrayList<>(getVendors().keySet());
return findVendors(StringUtils.EMPTY);
}

@NonNull
@Override
public List<String> findVendors(@NonNull String filter) {
if (StringUtils.isBlank(filter)) {
return new ArrayList<>(getVendors().keySet());
}
String filterToUpperCase = filter.toUpperCase();
Predicate<String> predicate =
PredicateUtils.anyPredicate(new StringContains(filter), new MacContains(filter));
PredicateUtils.anyPredicate(new StringContains(filterToUpperCase), new MacContains(filterToUpperCase));
return new ArrayList<>(CollectionUtils.select(getVendors().keySet(), predicate));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ public class VendorDBTest {
private static final String MAC_ADDRESS_INVALID = "XX:XX:XX";
private static final int VENDOR_SIZE = 17185;
private static final int MACS_SIZE = 25579;
private static final String FILTER_VENDOR = "1394 ";
private static final String FILTER_MAC = "00:A0:2";
private static final String EXPECTED_VENDOR_NAME1 = "1394 TRADE ASSOCIATION";
private static final String EXPECTED_VENDOR_NAME2 = "TRANSITIONS RESEARCH CORP";
private static final String EXPECTED_VENDOR_NAME3 = "1394 PRINTER WORKING GROUP";
private static final String EXPECTED_MAC1 = "00:00:0C";
private static final String EXPECTED_MAC2 = "FC:FB:FB";
private static final String EXPECTED_MAC3 = "00:9A:D2";

private VendorDB fixture;

Expand All @@ -57,6 +65,14 @@ public void testFindVendorName() {
assertEquals(VENDOR_NAME, actual);
}

@Test
public void testFindVendorNameUsingLowerCase() {
// execute
String actual = fixture.findVendorName(MAC_ADDRESS.toLowerCase());
// validate
assertEquals(VENDOR_NAME, actual);
}

@Test
public void testFindVendorNameWithNull() {
// execute
Expand All @@ -82,9 +98,23 @@ public void testFindMacAddresses() {
// validate
assertEquals(expectedSize, actual.size());

assertEquals("00:00:0C", actual.get(0));
assertEquals("FC:FB:FB", actual.get(expectedSize - 1));
assertEquals("00:9A:D2", actual.get(expectedSize / 2));
assertEquals(EXPECTED_MAC1, actual.get(0));
assertEquals(EXPECTED_MAC2, actual.get(expectedSize - 1));
assertEquals(EXPECTED_MAC3, actual.get(expectedSize / 2));
}

@Test
public void testFindMacAddressesUsingLowerCase() {
// setup
int expectedSize = 842;
// execute
List<String> actual = fixture.findMacAddresses(VENDOR_NAME.toLowerCase());
// validate
assertEquals(expectedSize, actual.size());

assertEquals(EXPECTED_MAC1, actual.get(0));
assertEquals(EXPECTED_MAC2, actual.get(expectedSize - 1));
assertEquals(EXPECTED_MAC3, actual.get(expectedSize / 2));
}

@Test
Expand All @@ -111,24 +141,52 @@ public void testFindVendors() {
assertEquals(VENDOR_SIZE, actual.size());
}

@Test
public void testFindVendorsWithEmptyVendorFilter() {
// execute
List<String> actual = fixture.findVendors(StringUtils.EMPTY);
// validate
assertEquals(VENDOR_SIZE, actual.size());
}

@Test
public void testFindVendorsWithVendorFilter() {
// execute
List<String> actual = fixture.findVendors("1394 ");
List<String> actual = fixture.findVendors(FILTER_VENDOR);
// validate
assertEquals(2, actual.size());
assertEquals(EXPECTED_VENDOR_NAME3, actual.get(0));
assertEquals(EXPECTED_VENDOR_NAME1, actual.get(1));
}

@Test
public void testFindVendorsWithVendorFilterUsingLowerCase() {
// execute
List<String> actual = fixture.findVendors(FILTER_VENDOR.toLowerCase());
// validate
assertEquals(2, actual.size());
assertEquals("1394 PRINTER WORKING GROUP", actual.get(0));
assertEquals("1394 TRADE ASSOCIATION", actual.get(1));
assertEquals(EXPECTED_VENDOR_NAME3, actual.get(0));
assertEquals(EXPECTED_VENDOR_NAME1, actual.get(1));
}

@Test
public void testFindVendorsWithMacFilter() {
// execute
List<String> actual = fixture.findVendors("00:A0:2");
List<String> actual = fixture.findVendors(FILTER_MAC);
// validate
assertEquals(16, actual.size());
assertEquals(EXPECTED_VENDOR_NAME1, actual.get(0));
assertEquals(EXPECTED_VENDOR_NAME2, actual.get(15));
}

@Test
public void testFindVendorsWithMacFilterUsingLowerCase() {
// execute
List<String> actual = fixture.findVendors(FILTER_MAC.toLowerCase());
// validate
assertEquals(16, actual.size());
assertEquals("1394 TRADE ASSOCIATION", actual.get(0));
assertEquals("TRANSITIONS RESEARCH CORP", actual.get(15));
assertEquals(EXPECTED_VENDOR_NAME1, actual.get(0));
assertEquals(EXPECTED_VENDOR_NAME2, actual.get(15));
}

@Test
Expand Down

0 comments on commit e5233ba

Please sign in to comment.