From b2938c05283a4e648163279f5c064945dcfb5574 Mon Sep 17 00:00:00 2001 From: Codegass Date: Fri, 3 Nov 2023 08:38:15 -0400 Subject: [PATCH] Refactor testCRUDAcl into Separate Test Cases (#7705) - Extracted shared ACL setup logic into a private helper method, setupAcl(). - Split original testCRUDAcl into two separate tests: testCRUDAclReadAll and testCRUDAclReadOne. - Each test case now represents a unique scenario for better readability and maintainability. - Replaced assertTrue(false) with fail() in catch blocks for better test failure indication. These changes aim to enhance the clarity and maintainability of the test suite, and ensure each test case checks only one scenario. --- .../cloud/network/nicira/NiciraNvpApiIT.java | 82 +++++++++++-------- 1 file changed, 50 insertions(+), 32 deletions(-) diff --git a/plugins/network-elements/nicira-nvp/src/test/java/com/cloud/network/nicira/NiciraNvpApiIT.java b/plugins/network-elements/nicira-nvp/src/test/java/com/cloud/network/nicira/NiciraNvpApiIT.java index 60c521ae360..318b95a7f62 100644 --- a/plugins/network-elements/nicira-nvp/src/test/java/com/cloud/network/nicira/NiciraNvpApiIT.java +++ b/plugins/network-elements/nicira-nvp/src/test/java/com/cloud/network/nicira/NiciraNvpApiIT.java @@ -21,6 +21,7 @@ package com.cloud.network.nicira; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.List; @@ -104,36 +105,14 @@ public class NiciraNvpApiIT { } @Test - public void testCRUDAcl() { - Acl acl = new Acl(); - acl.setDisplayName("Acl" + timestamp); - - // Note that if the protocol is 6 (TCP) then you cannot put ICMP code and type - // Note that if the protocol is 1 (ICMP) then you cannot put ports - final List egressRules = new ArrayList(); - acl.setLogicalPortEgressRules(egressRules); - egressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 1, "allow", null, null, "1.10.10.0", "1.10.10.1", null, null, null, null, 0, 0, 5)); - egressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 6, "allow", null, null, "1.10.10.6", "1.10.10.7", 80, 80, 80, 80, 1, null, null)); - - final List ingressRules = new ArrayList(); - acl.setLogicalPortIngressRules(ingressRules); - ingressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 1, "allow", null, null, "1.10.10.0", "1.10.10.1", null, null, null, null, 0, 0, 5)); - ingressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 6, "allow", null, null, "1.10.10.6", "1.10.10.7", 80, 80, 80, 80, 1, null, null)); - - final List tags = new ArrayList(); - acl.setTags(tags); - tags.add(new NiciraNvpTag("nvp", "MyTag1")); - tags.add(new NiciraNvpTag("nicira", "MyTag2")); - // In the creation we don't get to specify UUID, href or schema: they don't exist yet - + public void testCRUDAclReadAll() { try { - acl = api.createAcl(acl); + Acl acl = setupAcl(); - // We can now update the new entity + acl = api.createAcl(acl); acl.setDisplayName("UpdatedAcl" + timestamp); api.updateAcl(acl, acl.getUuid()); - // Read them all List acls = api.findAcl(); Acl scInList = null; for (final Acl iAcl : acls) { @@ -143,16 +122,30 @@ public class NiciraNvpApiIT { } assertEquals("Read a ACL different from the one just created and updated", acl, scInList); - // Read them filtered by uuid (get one) - acls = api.findAcl(acl.getUuid()); - assertEquals("Read a ACL different from the one just created and updated", acl, acls.get(0)); - assertEquals("Read a ACL filtered by unique id (UUID) with more than one item", 1, acls.size()); - - // We can now delete the new entity api.deleteAcl(acl.getUuid()); } catch (final NiciraNvpApiException e) { e.printStackTrace(); - assertTrue("Errors in ACL CRUD", false); + fail("Errors in ACL CRUD"); + } + } + + @Test + public void testCRUDAclReadOne() { + try { + Acl acl = setupAcl(); + + acl = api.createAcl(acl); + acl.setDisplayName("UpdatedAcl" + timestamp); + api.updateAcl(acl, acl.getUuid()); + + List acls = api.findAcl(acl.getUuid()); + assertEquals("Read a ACL different from the one just created and updated", acl, acls.get(0)); + assertEquals("Read a ACL filtered by unique id (UUID) with more than one item", 1, acls.size()); + + api.deleteAcl(acl.getUuid()); + } catch (final NiciraNvpApiException e) { + e.printStackTrace(); + fail("Errors in ACL CRUD"); } } @@ -316,4 +309,29 @@ public class NiciraNvpApiIT { assertTrue("Not recognizable cluster status", correctStatus); } + private Acl setupAcl() { + Acl acl = new Acl(); + acl.setDisplayName("Acl" + timestamp); + + // Note that if the protocol is 6 (TCP) then you cannot put ICMP code and type + // Note that if the protocol is 1 (ICMP) then you cannot put ports + final List egressRules = new ArrayList<>(); + acl.setLogicalPortEgressRules(egressRules); + egressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 1, "allow", null, null, "1.10.10.0", "1.10.10.1", null, null, null, null, 0, 0, 5)); + egressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 6, "allow", null, null, "1.10.10.6", "1.10.10.7", 80, 80, 80, 80, 1, null, null)); + + final List ingressRules = new ArrayList<>(); + acl.setLogicalPortIngressRules(ingressRules); + ingressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 1, "allow", null, null, "1.10.10.0", "1.10.10.1", null, null, null, null, 0, 0, 5)); + ingressRules.add(new AclRule(AclRule.ETHERTYPE_IPV4, 6, "allow", null, null, "1.10.10.6", "1.10.10.7", 80, 80, 80, 80, 1, null, null)); + + final List tags = new ArrayList<>(); + acl.setTags(tags); + tags.add(new NiciraNvpTag("nvp", "MyTag1")); + tags.add(new NiciraNvpTag("nicira", "MyTag2")); + // In the creation we don't get to specify UUID, href or schema: they don't exist yet + + return acl; + } + }