Created
December 21, 2010 10:12
-
-
Save mgenov/749745 to your computer and use it in GitHub Desktop.
ServiceProvisionManager Contract Test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.junit.Test; | |
import static org.junit.Assert.*; | |
/** | |
* | |
* ServiceProvisionContract is a contract test that is checking the correct behaviour of the {@link ServiceProvisionManager} implementations. | |
* | |
* @author Miroslav Genov ([email protected]) | |
*/ | |
public abstract class ServiceProvisionManagerContract { | |
@Test | |
public void serviceProvisioningUsingMacAddress() { | |
ServiceProvisionManager manager = provisionManagerContainsActiveContractWithMac("123456", "00:aa:bb:cc:dd:ff"); | |
ProvisionResult result = manager.isServiceAvailable("00:aa:bb:cc:dd:ff",null); | |
assertTrue(result.isProvisioning()); | |
assertEquals("contract code was not valid?","123456",result.getContractCode()); | |
assertNull(result.getReason()); | |
} | |
@Test | |
public void macNotFound() { | |
ServiceProvisionManager manager = provisionManagerWithNoInstalledServices(); | |
ProvisionResult result = manager.isServiceAvailable("aa:bb:cc", null); | |
assertNull(result.getContractCode()); | |
assertFalse("service is provisioned?",result.isProvisioning()); | |
assertEquals("MAC_NOT_FOUND", result.getReason()); | |
} | |
@Test | |
public void serviceProvisioningUsingUsername() { | |
ServiceProvisionManager manager = provisionManagerContainsActiveContractWithUsername("123456", "test"); | |
ProvisionResult result = manager.isServiceAvailable(null,"test"); | |
assertEquals("123456", result.getContractCode()); | |
assertTrue("service was not provisioned where it should be?",result.isProvisioning()); | |
assertNull(result.getReason()); | |
} | |
@Test | |
public void usernameNotFound() { | |
ServiceProvisionManager manager = provisionManagerWithNoInstalledServices(); | |
ProvisionResult result = manager.isServiceAvailable(null,"dd"); | |
assertFalse("we are provisioning service which doesn't contains valid mac address",result.isProvisioning()); | |
assertEquals("USER_NOT_FOUND", result.getReason()); | |
} | |
@Test | |
public void macAddressAndUsernameAreNotBeingSet() { | |
ServiceProvisionManager manager = provisionManagerWithNoInstalledServices(); | |
ProvisionResult result = manager.isServiceAvailable(null, null); | |
assertFalse(result.isProvisioning()); | |
assertEquals("MAC_OR_USER_NOT_BEING_SPECIFIED",result.getReason()); | |
} | |
@Test | |
public void serviceNotAvailable() { | |
ServiceProvisionManager manager = provisionManagerWithNotAvailableInfrastructure(); | |
ProvisionResult result = manager.isServiceAvailable("aaa:bb:cc:dd", null); | |
assertFalse(result.isProvisioning()); | |
assertEquals("SERVICE_NOT_AVAILABLE", result.getReason()); | |
} | |
protected abstract ServiceProvisionManager provisionManagerWithNotAvailableInfrastructure(); | |
protected abstract ServiceProvisionManager provisionManagerWithNoInstalledServices(); | |
protected abstract ServiceProvisionManager provisionManagerContainsActiveContractWithMac(String contractCode, String mac); | |
protected abstract ServiceProvisionManager provisionManagerContainsActiveContractWithUsername(String contractCode, String username); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment