Skip to content

Commit

Permalink
added connection tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tutkat committed Jul 29, 2024
1 parent 8844b28 commit 000f12b
Show file tree
Hide file tree
Showing 4 changed files with 198 additions and 103 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Collectors;

import static java.util.Collections.singletonList;
import static org.junit.Assert.assertEquals;
Expand All @@ -35,28 +36,26 @@ public class ConnectionsApiTest {
private static final List<String> connectionsToDelete = new ArrayList<>();
private static ConnectionsApi api = TokenGenerator.getApiClient().connections();

public static void removeConnections() {
connectionsToDelete.forEach(ConnectionsApiTest::deleteConnection);
}

@AfterClass
public static void removeResources() {
connectionsToDelete.forEach(uuid -> {
// if (getCloudRouterStatus(uuid) == CloudRouterAccessPointState.PROVISIONED) {
deleteConnection(uuid);
// }
});
removeConnections();
CloudRoutersApiTest.removeCloudRouters();
}

@Test
public void createConnectionPort2GenericSP() {
ServiceProfile serviceProfile =
new ServiceProfilesApiTest().getServiceProfilesByQueryResponse("zSide").as(ServiceProfiles.class)
.getData().stream().filter(sp -> sp.getState().equals(ServiceProfileStateEnum.ACTIVE))
.findAny().get();
public void createConnectionPort2SP() {
ServiceProfile serviceProfile = new ServiceProfilesApiTest().getServiceProfilesByQueryResponse("zSide").as(ServiceProfiles.class)
.getData().stream().filter(sp -> sp.getState().equals(ServiceProfileStateEnum.ACTIVE))
.findAny().get();

PortDto portDto = (PortDto) Utils.getEnvData(Utils.EnvVariable.QINQ_PORT);

ConnectionPostRequest connectionPostRequest = new ConnectionPostRequest()
.name("panters-con-port-2-sp")
ConnectionPostRequest connectionPostRequest = getDefaultConnectionRequest("panters-con-port-2-sp")
.type(ConnectionType.EVPL_VC)
.bandwidth(1000)
.redundancy(new ConnectionRedundancy().priority(ConnectionPriority.PRIMARY))
.order(new Order().purchaseOrderNumber("pol123"))
.zSide(new ConnectionSide().accessPoint(
Expand All @@ -66,10 +65,7 @@ public void createConnectionPort2GenericSP() {
.type(ServiceProfileTypeEnum.L2_PROFILE)
.uuid(serviceProfile.getUuid()))
.location(new SimplifiedLocation()
.metroCode(serviceProfile.getMetros().get(0).getCode()))))
.notifications(singletonList(new SimplifiedNotification()
.type(SimplifiedNotification.TypeEnum.ALL)
.emails(singletonList("[email protected]"))));
.metroCode(serviceProfile.getMetros().get(0).getCode()))));

Response response = null;

Expand Down Expand Up @@ -97,42 +93,39 @@ public void createConnectionPort2GenericSP() {
assertEquals(HttpStatus.SC_CREATED, response.getStatusCode());
Connection connection = response.as(Connection.class);
connectionsToDelete.add(connection.getUuid());
waitForConnection(connection.getUuid());
waitForConnection(connection.getUuid(),ConnectionState.PENDING);
}

@Test
public void createConnectionFCR2Colo() {
public void createConnectionFCR2Port() {
CloudRouter cloudRouter = new CloudRoutersApiTest().createRouter();

PortDto portDto = (PortDto) Utils.getEnvData(Utils.EnvVariable.QINQ_PORT);
Port port = PortsApiTest.getPorts().as(AllPortsResponse.class).getData().stream()
.filter(p -> p.getName().contains("Dot1q"))
.filter(p -> p.getLocation().getMetroCode().equals(cloudRouter.getLocation().getMetroCode()))
.findFirst().get();

UserDto userDto = (UserDto) Utils.getEnvData(Utils.EnvVariable.TEST_DATA_UAT_FCR_USER);

ConnectionPostRequest connectionPostRequest = new ConnectionPostRequest()
.name("panters-con-fcr-2-sp")
.type(ConnectionType.EVPL_VC)
.bandwidth(1000)
ConnectionPostRequest connectionPostRequest = getDefaultConnectionRequest("panters-con-fcr-2-port")
.type(ConnectionType.IP_VC)
.project(new Project().projectId(userDto.getProjectId()))
.aSide(new ConnectionSide().accessPoint(
new AccessPoint()
.type(AccessPointType.CLOUD_ROUTER)
.router(new CloudRouter().uuid(cloudRouter.getUuid()))))
.notifications(singletonList(new SimplifiedNotification()
.type(SimplifiedNotification.TypeEnum.ALL)
.emails(singletonList("[email protected]"))));
.router(new CloudRouter().uuid(cloudRouter.getUuid()))));

Response response = null;

for (int i = 0; i < 3; i++) {
int sTag = new Random().nextInt(4000);
int cTag = new Random().nextInt(4000);
int tag = new Random().nextInt(4000);
connectionPostRequest.zSide(new ConnectionSide().accessPoint(
new AccessPoint()
.type(AccessPointType.COLO)
.port(new SimplifiedPort().uuid(UUID.fromString(portDto.getUuid())))
.port(new SimplifiedPort().uuid(port.getUuid()))
.linkProtocol(new SimplifiedLinkProtocol()
.type(LinkProtocolType.QINQ)
.vlanSTag(sTag)
.vlanCTag(cTag))));
.type(LinkProtocolType.DOT1Q)
.vlanTag(tag))));

response = api.createConnection()
.body(connectionPostRequest)
Expand All @@ -146,34 +139,90 @@ public void createConnectionFCR2Colo() {
assertEquals(HttpStatus.SC_CREATED, response.getStatusCode());
Connection connection = response.as(Connection.class);
connectionsToDelete.add(connection.getUuid());
waitForConnection(connection.getUuid());
waitForConnection(connection.getUuid(),ConnectionState.PENDING);
}

/**
* // * Successful operation
* //
*/
@Test
public void createConnectionAction() {
String connectionId = null;
ConnectionActionRequest connectionActionRequest = null;
api.createConnectionAction()
.connectionIdPath(connectionId)
.body(connectionActionRequest).execute(r -> r);
// TODO: test validations
public void createConnectionPort2Port() {
List<Port> port = PortsApiTest.getPorts().as(AllPortsResponse.class).getData().stream()
.filter(p -> p.getName().contains("Dot1q"))
.collect(Collectors.toList());

Response response = null;

for (int i = 0; i < 3; i++) {
int tagAside = new Random().nextInt(4000);
int tagZside = new Random().nextInt(4000);

ConnectionPostRequest connectionPostRequest = getDefaultConnectionRequest("panters-con-port-2-port")
.type(ConnectionType.EVPL_VC)

.redundancy(new ConnectionRedundancy().priority(ConnectionPriority.PRIMARY))
.aSide(new ConnectionSide().accessPoint(
new AccessPoint()
.type(AccessPointType.COLO)
.port(new SimplifiedPort()
.uuid(port.get(0).getUuid()))
.linkProtocol(new SimplifiedLinkProtocol()
.type(LinkProtocolType.DOT1Q).vlanTag(tagAside))))
.zSide(new ConnectionSide().accessPoint(
new AccessPoint()
.type(AccessPointType.COLO)
.port(new SimplifiedPort()
.uuid(port.get(1).getUuid()))
.linkProtocol(new SimplifiedLinkProtocol()
.type(LinkProtocolType.DOT1Q)
.vlanTag(tagZside))));

response = api.createConnection()
.body(connectionPostRequest)
.execute(r -> r);

if (response.getStatusCode() == HttpStatus.SC_CREATED) {
break;
}
}

assertEquals(HttpStatus.SC_CREATED, response.getStatusCode());
Connection connection = response.as(Connection.class);
connectionsToDelete.add(connection.getUuid());
waitForConnection(connection.getUuid(),ConnectionState.PROVISIONED);
}

/**
* Delete Connection Request
*/
@Test
public void deleteConnectionByUuid() {
String connectionId = null;
api.deleteConnectionByUuid()
.connectionIdPath(connectionId).execute(r -> r);
// TODO: test validations
private ConnectionPostRequest getDefaultConnectionRequest(String name) {
return new ConnectionPostRequest()
.name(name)
.bandwidth(1000)
.notifications(singletonList(new SimplifiedNotification()
.type(SimplifiedNotification.TypeEnum.ALL)
.emails(singletonList("[email protected]"))));
}

// /**
// * // * Successful operation
// * //
// */
// @Test
// public void createConnectionAction() {
// String connectionId = null;
// ConnectionActionRequest connectionActionRequest = null;
// api.createConnectionAction()
// .connectionIdPath(connectionId)
// .body(connectionActionRequest).execute(r -> r);
// // TODO: test validations
// }
//
// /**
// * Delete Connection Request
// */
// @Test
// public void deleteConnectionByUuid() {
// String connectionId = null;
// api.deleteConnectionByUuid()
// .connectionIdPath(connectionId).execute(r -> r);
// // TODO: test validations
// }
//
/**
* Successful operation
*/
Expand All @@ -191,42 +240,42 @@ public void getConnectionByUuid() {
assertEquals(randomConnection.getUuid(), connection.getUuid());
assertEquals(randomConnection.getName(), connection.getName());
}

/**
* Successful operation
*/
@Test
public void searchConnections() {
Response response = getConnections();
ConnectionSearchResponse connectionSearchResponse = response.as(ConnectionSearchResponse.class);

assertEquals(HttpStatus.SC_OK, response.getStatusCode());
connectionSearchResponse.getData().forEach(connection -> assertEquals(connection.getOperation().getProviderStatus(), ProviderStatus.AVAILABLE));
}

/**
* Successful operation
*/
@Test
public void updateConnectionByUuid() {
String connectionId = null;
List<ConnectionChangeOperation> connectionChangeOperation = null;
api.updateConnectionByUuid()
.connectionIdPath(connectionId)
.body(connectionChangeOperation).execute(r -> r);
// TODO: test validations
}

/**
* Successful operation
*/
@Test
public void validateConnections() {
ValidateRequest validateRequest = null;
api.validateConnections()
.body(validateRequest).execute(r -> r);
// TODO: test validations
}
//
// /**
// * Successful operation
// */
// @Test
// public void searchConnections() {
// Response response = getConnections();
// ConnectionSearchResponse connectionSearchResponse = response.as(ConnectionSearchResponse.class);
//
// assertEquals(HttpStatus.SC_OK, response.getStatusCode());
// connectionSearchResponse.getData().forEach(connection -> assertEquals(connection.getOperation().getProviderStatus(), ProviderStatus.AVAILABLE));
// }
//
// /**
// * Successful operation
// */
// @Test
// public void updateConnectionByUuid() {
// String connectionId = null;
// List<ConnectionChangeOperation> connectionChangeOperation = null;
// api.updateConnectionByUuid()
// .connectionIdPath(connectionId)
// .body(connectionChangeOperation).execute(r -> r);
// // TODO: test validations
// }
//
// /**
// * Successful operation
// */
// @Test
// public void validateConnections() {
// ValidateRequest validateRequest = null;
// api.validateConnections()
// .body(validateRequest).execute(r -> r);
// // TODO: test validations
// }

private static void deleteConnection(String uuid) {
Response response = api.deleteConnectionByUuid()
Expand All @@ -235,13 +284,13 @@ private static void deleteConnection(String uuid) {
assertEquals(HttpStatus.SC_ACCEPTED, response.getStatusCode());
}

private void waitForConnection(String connecionUuid) {
private void waitForConnection(String connecionUuid, ConnectionState connectionState) {
for (int i = 0; i < 5; i++) {
Connection connection = api.getConnectionByUuid()
.connectionIdPath(connecionUuid)
.execute(re -> re).as(Connection.class);

if (connection.getState().equals(ConnectionState.PENDING)) {
if (connection.getState().equals(connectionState)) {
break;
}
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
*/
public class PortsApiTest {

private PortsApi api = TokenGenerator.getApiClient().ports();
private static PortsApi api = TokenGenerator.getApiClient().ports();

/**
* Successful operation
*/
@Test
public void getPorts() {
public void getPort() {
PortDto portDto = (PortDto) Utils.getEnvData(Utils.EnvVariable.QINQ_PORT);
Response response = api.getPorts().nameQuery(portDto.getName()).execute(r -> r);
Port port = response.as(AllPortsResponse.class).getData().get(0);
Expand All @@ -45,6 +45,13 @@ public void getPorts() {

@Test
public void searchPorts() {
Response response = getPorts();
List<Port> ports = response.as(AllPortsResponse.class).getData();
assertEquals(HttpStatus.SC_OK, response.getStatusCode());
assertTrue(!ports.isEmpty());
}

public static Response getPorts() {
UserDto userDto = (UserDto) Utils.getEnvData(Utils.EnvVariable.TEST_DATA_UAT_FCR_USER);

PortV4SearchRequest portV4SearchRequest = new PortV4SearchRequest()
Expand All @@ -57,6 +64,10 @@ public void searchPorts() {
.operator(PortExpression.OperatorEnum.EQUAL)
.property(PortSearchFieldName.PROJECT_PROJECTID)
.values(singletonList(userDto.getProjectId())))
.addAndItem(new PortExpression()
.operator(PortExpression.OperatorEnum.EQUAL)
.property(PortSearchFieldName.PROJECT_PROJECTID)
.values(singletonList(userDto.getProjectId())))
.addAndItem(new PortExpression()
.operator(PortExpression.OperatorEnum.EQUAL)
.property(PortSearchFieldName.SETTINGS_PRODUCTCODE)
Expand All @@ -67,9 +78,6 @@ public void searchPorts() {
.limit(100))
.sort(singletonList(new PortSortCriteria().property(PortSortBy._DEVICE_NAME).direction(PortSortDirection.DESC)));

Response response = api.searchPorts().body(portV4SearchRequest).execute(r -> r);
List<Port> ports = response.as(AllPortsResponse.class).getData();
assertEquals(HttpStatus.SC_OK, response.getStatusCode());
assertTrue(!ports.isEmpty());
return api.searchPorts().body(portV4SearchRequest).execute(r -> r);
}
}
8 changes: 6 additions & 2 deletions v4/api/CloudRoutersApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,19 @@ public class CloudRoutersApiTest {
private static final List<UUID> cloudRouterToDelete = new ArrayList<>();
private static CloudRoutersApi api = TokenGenerator.getApiClient().cloudRouters();

@AfterClass
public static void removeResources() {
public static void removeCloudRouters() {
cloudRouterToDelete.forEach(uuid -> {
if (getCloudRouterStatus(uuid) == CloudRouterAccessPointState.PROVISIONED) {
deleteCloudRouter(uuid);
}
});
}

@AfterClass
public static void removeResources() {
removeCloudRouters();
}

public CloudRouter createRouter() {
UserDto userDto = (UserDto) Utils.getEnvData(Utils.EnvVariable.TEST_DATA_UAT_FCR_USER);
String cloudRouterName = "panthers-test-java-sdk";
Expand Down
Loading

0 comments on commit 000f12b

Please sign in to comment.