final String defaultDeviceName = "Mobile";
// Null headers mean we return null device, not the default device
// (that's how it worked before introducing configurable default device,
// so I'm preserving this behaviuor)
Device device = repository.getDevice((HttpHeaders) null, defaultDeviceName);
assertNull("No device should be found", device);
// Empty headers cause default device to be used
MutableHttpHeaders headers =
HTTP_HEADERS_FACTORY.createHTTPHeaders();
device = repository.getDevice(headers, defaultDeviceName);
assertNotNull("Valid device should be found", device);
assertEquals("Device name should match", defaultDeviceName,
device.getName());
// Default device should be ignoired if a valid device can be extracted from headers
headers.addHeader("User-Agent", "Nokia3330/");
device = repository.getDevice(headers, defaultDeviceName);
assertNotNull("Valid device should be found", device);
assertEquals("Device name should match", "Nokia-3330",
device.getName());
}
});
}