Files
jlibzeroconf/src/test/java/com/softwarecraftsmen/dns/MailExchangeTest.java
2012-05-04 17:44:49 -07:00

60 lines
2.6 KiB
Java

/**
* This file is Copyright © 2008 Software Craftsmen Limited. All Rights Reserved.
*/
package com.softwarecraftsmen.dns;
import static com.softwarecraftsmen.dns.names.HostName.hostName;
import static com.softwarecraftsmen.dns.MailExchange.mailExchange;
import static com.softwarecraftsmen.unsignedIntegers.Unsigned16BitInteger.unsigned16BitInteger;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
import org.junit.Test;
public class MailExchangeTest
{
@Test
public void comparesUsingPreferencesFirstAndLowerPreferenceWins()
{
final MailExchange lowerPreference = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
final MailExchange higherPreference = mailExchange(unsigned16BitInteger(20), hostName("mail.google.com"));
assertThat(lowerPreference, lessThan(higherPreference));
assertThat(higherPreference, greaterThan(lowerPreference));
}
@Test
public void comparesUsingPreferencesFirstThenHostNamesAndEqualHostNamesAreEqual()
{
final MailExchange identicalPreference1 = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
final MailExchange identicalPreference2 = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
final int operand = identicalPreference1.compareTo(identicalPreference2);
assertThat(0, equalTo(operand));
}
@Test
public void comparesUsingPreferencesFirstThenHostNamesAndHostNamesWithLessLabelsAreFirst()
{
final MailExchange shorterHostName = mailExchange(unsigned16BitInteger(10), hostName("squid.com"));
final MailExchange longerHostName = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
assertThat(shorterHostName, lessThan(longerHostName));
assertThat(longerHostName, greaterThan(shorterHostName));
}
@Test
public void comparesUsingPreferencesFirstThenHostNamesAndHostNamesWithSameLabelsAreFirst()
{
final MailExchange shorterHostName = mailExchange(unsigned16BitInteger(10), hostName("first.google.com"));
final MailExchange longerHostName = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
assertThat(shorterHostName, lessThan(longerHostName));
assertThat(longerHostName, greaterThan(shorterHostName));
}
@Test
public void comparesUsingPreferencesFirstThenHostNamesAndHostNamesWithSameLabelsAreFirstCheckReversesCorrectly()
{
final MailExchange shorterHostName = mailExchange(unsigned16BitInteger(10), hostName("mail.google.com"));
final MailExchange longerHostName = mailExchange(unsigned16BitInteger(10), hostName("mail.google.org"));
assertThat(shorterHostName, lessThan(longerHostName));
assertThat(longerHostName, greaterThan(shorterHostName));
}
}