{"action":"created","comment":{"url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/comments/317613477","pull_request_review_id":279603961,"id":317613477,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMxNzYxMzQ3Nw==","diff_hunk":"@@ -0,0 +1,490 @@\n+package eu.arrowhead.core.orchestrator.matchmaking;\n+\n+import java.util.List;\n+\n+import org.junit.Assert;\n+import org.junit.Test;\n+import org.junit.runner.RunWith;\n+import org.springframework.test.context.junit4.SpringRunner;\n+\n+import eu.arrowhead.common.dto.CloudRequestDTO;\n+import eu.arrowhead.common.dto.CloudResponseDTO;\n+import eu.arrowhead.common.dto.GSDPollResponseDTO;\n+import eu.arrowhead.common.dto.GSDQueryResultDTO;\n+\n+@RunWith(SpringRunner.class)\n+public class RandomWeightedCloudMatchmakerTest {\n+\n+\t//=================================================================================================\n+\t// members\n+\t\n+\tprivate final CloudMatchmakingAlgorithm algorithm = new RandomWeightedCloudMatchmaker();\n+\t\n+\t//=================================================================================================\n+\t// methods\n+\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingMoreWeightResultsMoreMatching() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of();\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 10;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 1;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(gsdPollResponseDTO1, gsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tint provider1 = 0;\n+\t\tint provider2 = 0;\n+\t\tfor (int i = 0; i < 100; i++) {\n+\t\t\t\n+\t\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\t\n+\t\t\tif (cloudResponseDTO.getName().equalsIgnoreCase(providerCloud1.getName())) {\n+\t\t\t\t\n+\t\t\t\t++provider1;\n+\t\t\t}else {\n+\t\t\t\t++provider2;\n+\t\t\t}\n+\t\t}\n+\t\t\n+\t\tAssert.assertTrue( provider1 > provider2 );\n+\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingMoreWeightResultsMoreMatchingOnlyIfItIsPreferred() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator2\");\n+\t\tcloudRequestDTO.setName(\"cloudname2\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 10;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 1;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(gsdPollResponseDTO1, gsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tint provider1 = 0;\n+\t\tint provider2 = 0;\n+\t\tfor (int i = 0; i < 100; i++) {\n+\t\t\t\n+\t\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\t\n+\t\t\tif (cloudResponseDTO.getName().equalsIgnoreCase(providerCloud1.getName())) {\n+\t\t\t\t\n+\t\t\t\t++provider1;\n+\t\t\t}else {\n+\t\t\t\t++provider2;\n+\t\t\t}\n+\t\t}\n+\t\t\n+\t\tAssert.assertFalse( provider1 > provider2 );\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingOnlyPreferred() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = true;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator100\");\n+\t\tcloudRequestDTO.setName(\"cloudname100\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 10;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 1;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(gsdPollResponseDTO1, gsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\n+\t\tAssert.assertTrue( cloudResponseDTO.getName() == null );\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingNotOnlyPreferred() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator100\");\n+\t\tcloudRequestDTO.setName(\"cloudname100\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 10;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 1;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(gsdPollResponseDTO1, gsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\n+\t\tAssert.assertTrue( cloudResponseDTO.getName() != null );\n+\t}\n+\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test(expected = IllegalArgumentException.class)\n+\tpublic void testDoMatchmakingNullParameter() {\t\t\n+\t\t\n+\t\talgorithm.doMatchmaking( null );\n+\t}\n+\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakigNullGSDQueryResultDTO() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator100\");\n+\t\tcloudRequestDTO.setName(\"cloudname100\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\t\t\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = null;\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\n+\t\tAssert.assertTrue( cloudResponseDTO.getName() == null );\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakigEmptyGSDQueryResultDTO() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator100\");\n+\t\tcloudRequestDTO.setName(\"cloudname100\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\t\t\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of();\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\n+\t\tAssert.assertTrue( cloudResponseDTO.getName() == null );\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingProvidersWithZeroWeightWillNotBeIncludedInResponse() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal CloudRequestDTO cloudRequestDTO = new CloudRequestDTO();\n+\t\tcloudRequestDTO.setOperator(\"operator100\");\n+\t\tcloudRequestDTO.setName(\"cloudname100\");\n+\t\t\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of(cloudRequestDTO);\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 0;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 0;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(gsdPollResponseDTO1, gsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\n+\t\tAssert.assertTrue( cloudResponseDTO.getName() == null );\n+\t}\n+\t\n+\t//-------------------------------------------------------------------------------------------------\n+\t@Test\n+\tpublic void testDoMatchmakingAddingAProviderMoreThenOnceNotResultsMoreMatching() {\t\t\n+\t\t\n+\t\tfinal boolean onlyPreferred = false;\n+\t\tfinal List<CloudRequestDTO> preferredClouds = List.of();\n+\n+\t\tfinal CloudResponseDTO providerCloud1 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator1\", \n+\t\t\t\t\"cloudname1\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders10 = 2;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO1 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud1,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders10,\n+\t\t\t\tnull);\n+\t\t\n+\t\tfinal CloudResponseDTO providerCloud2 = new CloudResponseDTO(\n+\t\t\t\t1L, \n+\t\t\t\t\"operator2\", \n+\t\t\t\t\"cloudname2\", \n+\t\t\t\tfalse, \n+\t\t\t\ttrue, \n+\t\t\t\tfalse, \n+\t\t\t\tnull, \n+\t\t\t\tnull, \n+\t\t\t\tnull);\n+\t\tfinal int numOfProviders1 = 1;\t\t\n+\t\tfinal GSDPollResponseDTO gsdPollResponseDTO2 = new GSDPollResponseDTO(\n+\t\t\t\tproviderCloud2,\n+\t\t\t\t\"requiredServiceDefinition\",\n+\t\t\t\tnull,\n+\t\t\t\tnumOfProviders1,\n+\t\t\t\tnull);\n+\t\tfinal List<GSDPollResponseDTO> gsdPollResponseDTOList = List.of(\n+\t\t\t\tgsdPollResponseDTO1,\t\t\t\t\n+\t\t\t\tgsdPollResponseDTO2,\n+\t\t\t\tgsdPollResponseDTO2,\n+\t\t\t\tgsdPollResponseDTO2);\n+\t\tfinal int unsuccessfulRequests = 0;\n+\t\tfinal GSDQueryResultDTO gsdQueryResultDTO = new GSDQueryResultDTO(\n+\t\t\t\tgsdPollResponseDTOList, \n+\t\t\t\tunsuccessfulRequests);\n+\t\t\n+\t\tfinal CloudMatchmakingParameters params = new CloudMatchmakingParameters(\n+\t\t\t\tgsdQueryResultDTO, \n+\t\t\t\tpreferredClouds, \n+\t\t\t\tonlyPreferred);\t\n+\t\t\n+\t\tint provider1 = 0;\n+\t\tint provider2 = 0;\n+\t\tfor (int i = 0; i < 100; i++) {\n+\t\t\t\n+\t\t\tfinal CloudResponseDTO cloudResponseDTO = algorithm.doMatchmaking(params);\n+\t\t\t\n+\t\t\tif (cloudResponseDTO.getName().equalsIgnoreCase(providerCloud1.getName())) {\n+\t\t\t\t\n+\t\t\t\t++provider1;\n+\t\t\t}else {\n+\t\t\t\t++provider2;\n+\t\t\t}\n+\t\t}\n+\t\t\n+\t\tAssert.assertTrue( provider1 > provider2 );","path":"orchestrator/src/test/java/eu/arrowhead/core/orchestrator/matchmaking/RandomWeightedCloudMatchmakerTest.java","position":null,"original_position":486,"commit_id":"bbf3a275257b3e73a47e05d97e69437d496d884b","original_commit_id":"2b606bc72c5a388449526115434ba7addd051659","user":{"login":"MaGaMeGa","id":21195245,"node_id":"MDQ6VXNlcjIxMTk1MjQ1","avatar_url":"https://avatars1.githubusercontent.com/u/21195245?v=4","gravatar_id":"","url":"https://api.github.com/users/MaGaMeGa","html_url":"https://github.com/MaGaMeGa","followers_url":"https://api.github.com/users/MaGaMeGa/followers","following_url":"https://api.github.com/users/MaGaMeGa/following{/other_user}","gists_url":"https://api.github.com/users/MaGaMeGa/gists{/gist_id}","starred_url":"https://api.github.com/users/MaGaMeGa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaGaMeGa/subscriptions","organizations_url":"https://api.github.com/users/MaGaMeGa/orgs","repos_url":"https://api.github.com/users/MaGaMeGa/repos","events_url":"https://api.github.com/users/MaGaMeGa/events{/privacy}","received_events_url":"https://api.github.com/users/MaGaMeGa/received_events","type":"User","site_admin":false},"body":"done","created_at":"2019-08-26T13:52:48Z","updated_at":"2019-08-26T13:52:48Z","html_url":"https://github.com/arrowhead-f/core-java-spring/pull/48#discussion_r317613477","pull_request_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/comments/317613477"},"html":{"href":"https://github.com/arrowhead-f/core-java-spring/pull/48#discussion_r317613477"},"pull_request":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48"}},"in_reply_to_id":317551226},"pull_request":{"url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48","id":310830634,"node_id":"MDExOlB1bGxSZXF1ZXN0MzEwODMwNjM0","html_url":"https://github.com/arrowhead-f/core-java-spring/pull/48","diff_url":"https://github.com/arrowhead-f/core-java-spring/pull/48.diff","patch_url":"https://github.com/arrowhead-f/core-java-spring/pull/48.patch","issue_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/48","number":48,"state":"open","locked":false,"title":"Orchestrator otic tests","user":{"login":"MaGaMeGa","id":21195245,"node_id":"MDQ6VXNlcjIxMTk1MjQ1","avatar_url":"https://avatars1.githubusercontent.com/u/21195245?v=4","gravatar_id":"","url":"https://api.github.com/users/MaGaMeGa","html_url":"https://github.com/MaGaMeGa","followers_url":"https://api.github.com/users/MaGaMeGa/followers","following_url":"https://api.github.com/users/MaGaMeGa/following{/other_user}","gists_url":"https://api.github.com/users/MaGaMeGa/gists{/gist_id}","starred_url":"https://api.github.com/users/MaGaMeGa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaGaMeGa/subscriptions","organizations_url":"https://api.github.com/users/MaGaMeGa/orgs","repos_url":"https://api.github.com/users/MaGaMeGa/repos","events_url":"https://api.github.com/users/MaGaMeGa/events{/privacy}","received_events_url":"https://api.github.com/users/MaGaMeGa/received_events","type":"User","site_admin":false},"body":"","created_at":"2019-08-26T08:59:16Z","updated_at":"2019-08-26T13:52:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c6d33e34148d53c99990e508a120a6073b6e5fdc","assignee":null,"assignees":[],"requested_reviewers":[{"login":"borditamas","id":48867251,"node_id":"MDQ6VXNlcjQ4ODY3MjUx","avatar_url":"https://avatars3.githubusercontent.com/u/48867251?v=4","gravatar_id":"","url":"https://api.github.com/users/borditamas","html_url":"https://github.com/borditamas","followers_url":"https://api.github.com/users/borditamas/followers","following_url":"https://api.github.com/users/borditamas/following{/other_user}","gists_url":"https://api.github.com/users/borditamas/gists{/gist_id}","starred_url":"https://api.github.com/users/borditamas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/borditamas/subscriptions","organizations_url":"https://api.github.com/users/borditamas/orgs","repos_url":"https://api.github.com/users/borditamas/repos","events_url":"https://api.github.com/users/borditamas/events{/privacy}","received_events_url":"https://api.github.com/users/borditamas/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48/commits","review_comments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48/comments","review_comment_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/comments{/number}","comments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/48/comments","statuses_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/statuses/bbf3a275257b3e73a47e05d97e69437d496d884b","head":{"label":"arrowhead-f:orchestrator_otic_tests","ref":"orchestrator_otic_tests","sha":"bbf3a275257b3e73a47e05d97e69437d496d884b","user":{"login":"arrowhead-f","id":42401943,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNDAxOTQz","avatar_url":"https://avatars3.githubusercontent.com/u/42401943?v=4","gravatar_id":"","url":"https://api.github.com/users/arrowhead-f","html_url":"https://github.com/arrowhead-f","followers_url":"https://api.github.com/users/arrowhead-f/followers","following_url":"https://api.github.com/users/arrowhead-f/following{/other_user}","gists_url":"https://api.github.com/users/arrowhead-f/gists{/gist_id}","starred_url":"https://api.github.com/users/arrowhead-f/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arrowhead-f/subscriptions","organizations_url":"https://api.github.com/users/arrowhead-f/orgs","repos_url":"https://api.github.com/users/arrowhead-f/repos","events_url":"https://api.github.com/users/arrowhead-f/events{/privacy}","received_events_url":"https://api.github.com/users/arrowhead-f/received_events","type":"Organization","site_admin":false},"repo":{"id":187785407,"node_id":"MDEwOlJlcG9zaXRvcnkxODc3ODU0MDc=","name":"core-java-spring","full_name":"arrowhead-f/core-java-spring","private":false,"owner":{"login":"arrowhead-f","id":42401943,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNDAxOTQz","avatar_url":"https://avatars3.githubusercontent.com/u/42401943?v=4","gravatar_id":"","url":"https://api.github.com/users/arrowhead-f","html_url":"https://github.com/arrowhead-f","followers_url":"https://api.github.com/users/arrowhead-f/followers","following_url":"https://api.github.com/users/arrowhead-f/following{/other_user}","gists_url":"https://api.github.com/users/arrowhead-f/gists{/gist_id}","starred_url":"https://api.github.com/users/arrowhead-f/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arrowhead-f/subscriptions","organizations_url":"https://api.github.com/users/arrowhead-f/orgs","repos_url":"https://api.github.com/users/arrowhead-f/repos","events_url":"https://api.github.com/users/arrowhead-f/events{/privacy}","received_events_url":"https://api.github.com/users/arrowhead-f/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/arrowhead-f/core-java-spring","description":null,"fork":false,"url":"https://api.github.com/repos/arrowhead-f/core-java-spring","forks_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/forks","keys_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/teams","hooks_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/hooks","issue_events_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/events{/number}","events_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/events","assignees_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/assignees{/user}","branches_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/branches{/branch}","tags_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/tags","blobs_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/refs{/sha}","trees_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/statuses/{sha}","languages_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/languages","stargazers_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/stargazers","contributors_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/contributors","subscribers_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/subscribers","subscription_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/subscription","commits_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/commits{/sha}","git_commits_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/commits{/sha}","comments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/comments{/number}","issue_comment_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/comments{/number}","contents_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/contents/{+path}","compare_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/merges","archive_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/downloads","issues_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues{/number}","pulls_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls{/number}","milestones_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/milestones{/number}","notifications_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/labels{/name}","releases_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/releases{/id}","deployments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/deployments","created_at":"2019-05-21T07:33:29Z","updated_at":"2019-07-29T12:34:46Z","pushed_at":"2019-08-26T13:44:48Z","git_url":"git://github.com/arrowhead-f/core-java-spring.git","ssh_url":"git@github.com:arrowhead-f/core-java-spring.git","clone_url":"https://github.com/arrowhead-f/core-java-spring.git","svn_url":"https://github.com/arrowhead-f/core-java-spring","homepage":null,"size":2677,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":4,"license":null,"forks":1,"open_issues":4,"watchers":1,"default_branch":"master"}},"base":{"label":"arrowhead-f:orchestrator_orchestration_trigger_inter_cloud","ref":"orchestrator_orchestration_trigger_inter_cloud","sha":"f60cdb4732567b298d29535566978a6d7652a2ba","user":{"login":"arrowhead-f","id":42401943,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNDAxOTQz","avatar_url":"https://avatars3.githubusercontent.com/u/42401943?v=4","gravatar_id":"","url":"https://api.github.com/users/arrowhead-f","html_url":"https://github.com/arrowhead-f","followers_url":"https://api.github.com/users/arrowhead-f/followers","following_url":"https://api.github.com/users/arrowhead-f/following{/other_user}","gists_url":"https://api.github.com/users/arrowhead-f/gists{/gist_id}","starred_url":"https://api.github.com/users/arrowhead-f/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arrowhead-f/subscriptions","organizations_url":"https://api.github.com/users/arrowhead-f/orgs","repos_url":"https://api.github.com/users/arrowhead-f/repos","events_url":"https://api.github.com/users/arrowhead-f/events{/privacy}","received_events_url":"https://api.github.com/users/arrowhead-f/received_events","type":"Organization","site_admin":false},"repo":{"id":187785407,"node_id":"MDEwOlJlcG9zaXRvcnkxODc3ODU0MDc=","name":"core-java-spring","full_name":"arrowhead-f/core-java-spring","private":false,"owner":{"login":"arrowhead-f","id":42401943,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNDAxOTQz","avatar_url":"https://avatars3.githubusercontent.com/u/42401943?v=4","gravatar_id":"","url":"https://api.github.com/users/arrowhead-f","html_url":"https://github.com/arrowhead-f","followers_url":"https://api.github.com/users/arrowhead-f/followers","following_url":"https://api.github.com/users/arrowhead-f/following{/other_user}","gists_url":"https://api.github.com/users/arrowhead-f/gists{/gist_id}","starred_url":"https://api.github.com/users/arrowhead-f/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arrowhead-f/subscriptions","organizations_url":"https://api.github.com/users/arrowhead-f/orgs","repos_url":"https://api.github.com/users/arrowhead-f/repos","events_url":"https://api.github.com/users/arrowhead-f/events{/privacy}","received_events_url":"https://api.github.com/users/arrowhead-f/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/arrowhead-f/core-java-spring","description":null,"fork":false,"url":"https://api.github.com/repos/arrowhead-f/core-java-spring","forks_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/forks","keys_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/teams","hooks_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/hooks","issue_events_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/events{/number}","events_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/events","assignees_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/assignees{/user}","branches_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/branches{/branch}","tags_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/tags","blobs_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/refs{/sha}","trees_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/statuses/{sha}","languages_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/languages","stargazers_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/stargazers","contributors_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/contributors","subscribers_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/subscribers","subscription_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/subscription","commits_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/commits{/sha}","git_commits_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/git/commits{/sha}","comments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/comments{/number}","issue_comment_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/comments{/number}","contents_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/contents/{+path}","compare_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/merges","archive_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/downloads","issues_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues{/number}","pulls_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls{/number}","milestones_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/milestones{/number}","notifications_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/labels{/name}","releases_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/releases{/id}","deployments_url":"https://api.github.com/repos/arrowhead-f/core-java-spring/deployments","created_at":"2019-05-21T07:33:29Z","updated_at":"2019-07-29T12:34:46Z","pushed_at":"2019-08-26T13:44:48Z","git_url":"git://github.com/arrowhead-f/core-java-spring.git","ssh_url":"git@github.com:arrowhead-f/core-java-spring.git","clone_url":"https://github.com/arrowhead-f/core-java-spring.git","svn_url":"https://github.com/arrowhead-f/core-java-spring","homepage":null,"size":2677,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":4,"license":null,"forks":1,"open_issues":4,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48"},"html":{"href":"https://github.com/arrowhead-f/core-java-spring/pull/48"},"issue":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/48"},"comments":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/issues/48/comments"},"review_comments":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48/comments"},"review_comment":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/pulls/48/commits"},"statuses":{"href":"https://api.github.com/repos/arrowhead-f/core-java-spring/statuses/bbf3a275257b3e73a47e05d97e69437d496d884b"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"MaGaMeGa"}}