From 7e922d87457be8b20b8bbbe37647fb099f8dc5b6 Mon Sep 17 00:00:00 2001 From: naneey Date: Wed, 27 Mar 2024 15:15:03 +0545 Subject: [PATCH 1/2] chore:interface added --- .../cps/score/lib/interfaces/CPSCoreInterface.java | 8 +++++++- .../score/test/integration/config/BaseConfig.java | 1 + .../test/integration/scores/CPSCoreInterface.java | 8 +++++++- .../icon/cps/score/test/integration/scores/sICX.java | 12 ++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/score-lib/src/main/java/community/icon/cps/score/lib/interfaces/CPSCoreInterface.java b/score-lib/src/main/java/community/icon/cps/score/lib/interfaces/CPSCoreInterface.java index 5d7c5e64..e0cec7bd 100644 --- a/score-lib/src/main/java/community/icon/cps/score/lib/interfaces/CPSCoreInterface.java +++ b/score-lib/src/main/java/community/icon/cps/score/lib/interfaces/CPSCoreInterface.java @@ -119,7 +119,7 @@ public static class MilestoneVoteAttributes { void registerPrep(); @External(readonly = true) - boolean checkPriorityVoting(Address prep); + boolean checkPriorityVoting(Address _prep); @External(readonly = true) List sortPriorityProposals(); @@ -192,6 +192,9 @@ public static class MilestoneVoteAttributes { @External(readonly = true) List getProposalsKeysByStatus(String _status); + @External(readonly = true) + Map getMilestonesReport(String ipfsKey, int milestoneId); + @External(readonly = true) int checkChangeVote(Address address, String ipfsHash, String proposalType); @@ -254,6 +257,9 @@ public static class MilestoneVoteAttributes { @External void updateNextBlock(int blockCount); + @External(readonly = true) + List> getRemainingProject(String projectType, Address walletAddress); + @External void updateContributor(String _ipfs_key, Address _new_contributor, Address _new_sponsor); diff --git a/test-lib/src/main/java/community/icon/cps/score/test/integration/config/BaseConfig.java b/test-lib/src/main/java/community/icon/cps/score/test/integration/config/BaseConfig.java index 1ef63f4e..f33a68f2 100644 --- a/test-lib/src/main/java/community/icon/cps/score/test/integration/config/BaseConfig.java +++ b/test-lib/src/main/java/community/icon/cps/score/test/integration/config/BaseConfig.java @@ -56,6 +56,7 @@ public void call(){ cpsClient.cpsCore.toggleMaintenance(); cpsClient.cpsCore.setInitialBlock(); + cpsClient.cpsCore.setPrepPenaltyAmount(new BigInteger[]{BigInteger.valueOf(2),BigInteger.valueOf(5),BigInteger.TEN}); System.out.println("------system score------- " + addressMap.get("systemScore")); diff --git a/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/CPSCoreInterface.java b/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/CPSCoreInterface.java index 26ab21eb..844dfb7a 100644 --- a/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/CPSCoreInterface.java +++ b/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/CPSCoreInterface.java @@ -119,7 +119,7 @@ public static class MilestoneVoteAttributes { void registerPrep(); @External(readonly = true) - boolean checkPriorityVoting(Address prep); + boolean checkPriorityVoting(Address _prep); @External(readonly = true) List sortPriorityProposals(); @@ -201,6 +201,9 @@ public static class MilestoneVoteAttributes { @External(readonly = true) int getMileststoneStatusOf(String proposalKey, int milestoneId); + @External(readonly = true) + Map getMilestonesReport(String ipfsKey, int milestoneId); + @External(readonly = true) int checkChangeVote(Address address, String ipfsHash, String proposalType); @@ -266,6 +269,9 @@ public static class MilestoneVoteAttributes { @External void updateNextBlock(int blockCount); + @External(readonly = true) + List> getRemainingProject(String projectType, Address walletAddress); + @External void updateContributor(String _ipfs_key, Address _new_contributor, Address _new_sponsor); diff --git a/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/sICX.java b/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/sICX.java index 0b5296fb..f96b124b 100644 --- a/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/sICX.java +++ b/test-lib/src/main/java/community/icon/cps/score/test/integration/scores/sICX.java @@ -1,4 +1,16 @@ package community.icon.cps.score.test.integration.scores; +import score.Address; +import score.annotation.External; +import score.annotation.Optional; + +import java.math.BigInteger; + public interface sICX { + + @External + void mintTo(Address _account, BigInteger _amount); + + @External + void transfer(Address _to, BigInteger _value, @Optional byte[] _data); } From ec3d6b81297de699fa34c50e4736b201c5ba56a2 Mon Sep 17 00:00:00 2001 From: naneey Date: Wed, 27 Mar 2024 15:19:11 +0545 Subject: [PATCH 2/2] chore:linter fixes --- .../cps/integration/CPSCoreIntegration.java | 373 +++++++++--------- 1 file changed, 189 insertions(+), 184 deletions(-) diff --git a/CPSCore/src/intTest/java/community/icon/cps/integration/CPSCoreIntegration.java b/CPSCore/src/intTest/java/community/icon/cps/integration/CPSCoreIntegration.java index 7b0f1814..e9ffc5c0 100644 --- a/CPSCore/src/intTest/java/community/icon/cps/integration/CPSCoreIntegration.java +++ b/CPSCore/src/intTest/java/community/icon/cps/integration/CPSCoreIntegration.java @@ -47,9 +47,10 @@ public class CPSCoreIntegration implements ScoreIntegrationTest { private final BigInteger ICX = BigInteger.valueOf(10).pow(18); private static Map addressMap; - public static Map cpsClients = new HashMap<>(); + public static Map cpsClients = new HashMap<>(); + @BeforeAll - public static void setup() throws Exception{ + public static void setup() throws Exception { String contracts = "conf/contracts.json"; CPS cps = new CPS(contracts); @@ -63,7 +64,7 @@ public static void setup() throws Exception{ for (int i = 0; i < 7; i++) { String privKey = prepSet.toArray()[i].toString().substring(43); - cpsClients.put(i,cps.customClient(privKey)); + cpsClients.put(i, cps.customClient(privKey)); } @@ -71,20 +72,19 @@ public static void setup() throws Exception{ @Test @Order(1) - public void name(){ + public void name() { ownerClient.cpsCore.name(); } - @DisplayName("register all preps") @Test @Order(1) - public void registerPrep(){ + public void registerPrep() { // expected Prep address List expectedPrepAddress = new ArrayList<>(cpsClients.size()); - for (CPSClient prepClient:cpsClients.values()){ + for (CPSClient prepClient : cpsClients.values()) { prepClient.cpsCore.registerPrep(); expectedPrepAddress.add(prepClient.getAddress().toString()); @@ -97,32 +97,32 @@ public void registerPrep(){ actualPrepAddress.add((String) prep.get("address")); } - assertEquals(expectedPrepAddress,actualPrepAddress); + assertEquals(expectedPrepAddress, actualPrepAddress); // SYSTEM_INTERFACE = new SystemInterfaceScoreClient(godClient); // System.out.println(SYSTEM_INTERFACE.getPRepTerm()); } @Test @Order(2) - public void registerPrepExceptions(){ + public void registerPrepExceptions() { // readerClient tries to be registered as prep - assertUserRevert(new UserRevertException(TAG+": Not a P-Rep"), - () -> readerClient.cpsCore.registerPrep(),null); + assertUserRevert(new UserRevertException(TAG + ": Not a P-Rep"), + () -> readerClient.cpsCore.registerPrep(), null); // registered prep registers again CPSClient registeredPrep = cpsClients.get(0); - assertUserRevert(new UserRevertException(TAG+": P-Rep is already registered."), - () -> registeredPrep.cpsCore.registerPrep(),null); + assertUserRevert(new UserRevertException(TAG + ": P-Rep is already registered."), + () -> registeredPrep.cpsCore.registerPrep(), null); + - // TODO: handle deny list } @DisplayName("unregister prep") @Test @Order(2) - public void unregisterPrep(){ + public void unregisterPrep() { CPSClient prep1 = cpsClients.get(0); prep1.cpsCore.unregisterPrep(); @@ -130,7 +130,7 @@ public void unregisterPrep(){ Map expectedPrepData = unregisteredPrepData(); Map actualPrepData = loginPrep(prep1.getAddress()); - assertEquals(expectedPrepData,actualPrepData); + assertEquals(expectedPrepData, actualPrepData); prep1.cpsCore.registerPrep(); } @@ -139,23 +139,23 @@ public void unregisterPrep(){ @DisplayName("check prep data") @Test @Order(3) - public void loginAsPrep(){ + public void loginAsPrep() { // query period status - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Application Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Application Period"); CPSClient prep1 = cpsClients.get(0); // expected prep1 status Map expectedPrepData = votingPrepData(); Map actualPrepData = loginPrep(prep1.getAddress()); - assertEquals(expectedPrepData,actualPrepData); + assertEquals(expectedPrepData, actualPrepData); } @DisplayName("submit proposal 1") @Test @Order(4) - public void submitProposal(){ + public void submitProposal() { CPSClient prep1 = cpsClients.get(0); ProposalAttributes proposalAttributes = new ProposalAttributes(); @@ -165,7 +165,7 @@ public void submitProposal(){ proposalAttributes.total_budget = BigInteger.valueOf(100); proposalAttributes.token = bnUSD; proposalAttributes.sponsor_address = prep1.getAddress(); - proposalAttributes.ipfs_link ="https://proposal_1"; + proposalAttributes.ipfs_link = "https://proposal_1"; proposalAttributes.milestoneCount = 3; proposalAttributes.isMilestone = true; @@ -184,25 +184,25 @@ public void submitProposal(){ milestonesAttributes3.budget = BigInteger.valueOf(20).multiply(ICX); milestonesAttributes3.id = 3; // TODO: check if same id is sent - CPSCoreInterface.MilestonesAttributes[] milestonesAttributes =new CPSCoreInterface.MilestonesAttributes[] - {milestonesAttributes1, milestonesAttributes2,milestonesAttributes3}; - ((CPSCoreInterfaceScoreClient) testClient.cpsCore).submitProposal(BigInteger.valueOf(50).multiply(ICX),proposalAttributes,milestonesAttributes); + CPSCoreInterface.MilestonesAttributes[] milestonesAttributes = new CPSCoreInterface.MilestonesAttributes[] + {milestonesAttributes1, milestonesAttributes2, milestonesAttributes3}; + ((CPSCoreInterfaceScoreClient) testClient.cpsCore).submitProposal(BigInteger.valueOf(50).multiply(ICX), proposalAttributes, milestonesAttributes); List proposalsIpfs = readerClient.cpsCore.getProposalsKeysByStatus(SPONSOR_PENDING); - assertEquals(proposalsIpfs.size(),1); - assertEquals(proposalsIpfs.get(0),proposalAttributes.ipfs_hash); + assertEquals(proposalsIpfs.size(), 1); + assertEquals(proposalsIpfs.get(0), proposalAttributes.ipfs_hash); verifyProposalDetails(proposalAttributes); } - private void verifyProposalDetails(ProposalAttributes expectedDetails){ - Map actualDetails = getProposalDetails(expectedDetails.ipfs_hash); + private void verifyProposalDetails(ProposalAttributes expectedDetails) { + Map actualDetails = getProposalDetails(expectedDetails.ipfs_hash); assertEquals(actualDetails.get("project_title"), expectedDetails.project_title); assertEquals(actualDetails.get("sponsor_address"), expectedDetails.sponsor_address.toString()); assertEquals(actualDetails.get("ipfs_hash"), expectedDetails.ipfs_hash); - assertEquals(toInt((String)actualDetails.get("project_duration")), expectedDetails.project_duration); - assertEquals(toInt((String)actualDetails.get("milestoneCount")), expectedDetails.milestoneCount); - assertEquals(toBigInt((String)actualDetails.get("total_budget")), expectedDetails.total_budget.multiply(ICX)); + assertEquals(toInt((String) actualDetails.get("project_duration")), expectedDetails.project_duration); + assertEquals(toInt((String) actualDetails.get("milestoneCount")), expectedDetails.milestoneCount); + assertEquals(toBigInt((String) actualDetails.get("total_budget")), expectedDetails.total_budget.multiply(ICX)); } @@ -210,26 +210,26 @@ private void verifyProposalDetails(ProposalAttributes expectedDetails){ @DisplayName("submit sponsor vote on first proposal") @Test @Order(5) - public void submitSponsorVote(){ + public void submitSponsorVote() { CPSClient sponsorPrep = cpsClients.get(0); - bnUSDMint(sponsorPrep.getAddress(),BigInteger.valueOf(50).multiply(ICX)); + bnUSDMint(sponsorPrep.getAddress(), BigInteger.valueOf(50).multiply(ICX)); - byte[] data = createByteArray("sponsorVote", "Test_Proposal_1",ACCEPT, + byte[] data = createByteArray("sponsorVote", "Test_Proposal_1", ACCEPT, "Proposal looks good"); BigInteger sponsorBond = BigInteger.valueOf(15).multiply(ICX); - sponsorPrep.bnUSD.transfer(addressMap.get("cpsCore"),sponsorBond,data); + sponsorPrep.bnUSD.transfer(addressMap.get("cpsCore"), sponsorBond, data); List proposalsIpfs = readerClient.cpsCore.getProposalsKeysByStatus(PENDING); - assertEquals(proposalsIpfs.size(),1); - assertEquals(proposalsIpfs.get(0),"Test_Proposal_1"); + assertEquals(proposalsIpfs.size(), 1); + assertEquals(proposalsIpfs.get(0), "Test_Proposal_1"); - Map proposalDetails = getProposalDetails("Test_Proposal_1"); + Map proposalDetails = getProposalDetails("Test_Proposal_1"); assertEquals(sponsorBond, toBigInt((String) proposalDetails.get(SPONSOR_DEPOSIT_AMOUNT))); assertEquals(BOND_RECEIVED, proposalDetails.get(SPONSOR_DEPOSIT_STATUS)); - assertEquals(BigInteger.valueOf(35).multiply(ICX),readerClient.bnUSD.balanceOf(sponsorPrep.getAddress())); + assertEquals(BigInteger.valueOf(35).multiply(ICX), readerClient.bnUSD.balanceOf(sponsorPrep.getAddress())); } @DisplayName("vote on first proposal") @@ -240,23 +240,23 @@ public void voteProposal() throws InterruptedException { updateNextBlock(); ownerClient.cpsCore.updatePeriod(); - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Voting Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Voting Period"); - Map proposalVote = getProposalVote("Test_Proposal_1"); - assertEquals(toInt((String)proposalVote.get("total_voters")),0); - assertEquals(toInt((String)proposalVote.get("approve_voters")),0); - assertEquals(toInt((String)proposalVote.get("reject_voters")),0); + Map proposalVote = getProposalVote("Test_Proposal_1"); + assertEquals(toInt((String) proposalVote.get("total_voters")), 0); + assertEquals(toInt((String) proposalVote.get("approve_voters")), 0); + assertEquals(toInt((String) proposalVote.get("reject_voters")), 0); - for (CPSClient prepClient:cpsClients.values()){ - voteByPrep(prepClient,"Test_Proposal_1",APPROVE,"Seems fruitful",false); + for (CPSClient prepClient : cpsClients.values()) { + voteByPrep(prepClient, "Test_Proposal_1", APPROVE, "Seems fruitful", false); prepClient.cpsCore.votePriority(new String[]{"Test_Proposal_1"}); } proposalVote = getProposalVote("Test_Proposal_1"); - assertEquals(toInt((String)proposalVote.get("total_voters")),7); - assertEquals(toInt((String)proposalVote.get("approve_voters")),7); - assertEquals(toInt((String)proposalVote.get("reject_voters")),0); + assertEquals(toInt((String) proposalVote.get("total_voters")), 7); + assertEquals(toInt((String) proposalVote.get("approve_voters")), 7); + assertEquals(toInt((String) proposalVote.get("reject_voters")), 0); // TODO: approved votes does not match up // assertEquals(toBigInt((String)proposalVote.get("approved_votes")),BigInteger.valueOf(9540000).multiply(ICX)); } @@ -266,78 +266,78 @@ public void voteProposal() throws InterruptedException { @Order(7) public void transferFundsToProposal() throws InterruptedException { updateToApplicationPeriod(); - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Application Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Application Period"); - Map contributorProject = getContributorFunds(testClient.getAddress()); - List> contributorData = (List> )contributorProject.get("data"); + Map contributorProject = getContributorFunds(testClient.getAddress()); + List> contributorData = (List>) contributorProject.get("data"); - assertEquals(toBigInt((String) contributorData.get(0).get("installment_amount")),BigInteger.valueOf(30).multiply(ICX)); - assertEquals(toBigInt((String) contributorData.get(0).get("total_budget")),BigInteger.valueOf(100).multiply(ICX)); - assertEquals( contributorData.get(0).get("total_installment_count"),"0x3"); - assertEquals(toBigInt((String) contributorData.get(0).get("total_installment_paid")),BigInteger.valueOf(10).multiply(ICX)); - assertEquals(contributorProject.get("project_count"),"0x1"); + assertEquals(toBigInt((String) contributorData.get(0).get("installment_amount")), BigInteger.valueOf(30).multiply(ICX)); + assertEquals(toBigInt((String) contributorData.get(0).get("total_budget")), BigInteger.valueOf(100).multiply(ICX)); + assertEquals(contributorData.get(0).get("total_installment_count"), "0x3"); + assertEquals(toBigInt((String) contributorData.get(0).get("total_installment_paid")), BigInteger.valueOf(10).multiply(ICX)); + assertEquals(contributorProject.get("project_count"), "0x1"); - Map sponsorProject = getSponsorFunds(cpsClients.get(0).getAddress()); + Map sponsorProject = getSponsorFunds(cpsClients.get(0).getAddress()); - List> sponsorData = (List> )sponsorProject.get("data"); - assertEquals(toBigInt((String) sponsorData.get(0).get("installment_amount")),BigInteger.valueOf(6).multiply(ICX).divide(BigInteger.TEN)); - assertEquals(toBigInt((String) sponsorData.get(0).get("sponsor_bond_amount")),BigInteger.valueOf(15).multiply(ICX)); - assertEquals( sponsorData.get(0).get("total_installment_count"),"0x3"); - assertEquals(toBigInt((String) sponsorData.get(0).get("total_installment_paid")),BigInteger.valueOf(2).multiply(ICX).divide(BigInteger.TEN)); - assertEquals(toBigInt((String) sponsorProject.get("withdraw_amount_bnUSD")),BigInteger.valueOf(2).multiply(ICX).divide(BigInteger.TEN)); + List> sponsorData = (List>) sponsorProject.get("data"); + assertEquals(toBigInt((String) sponsorData.get(0).get("installment_amount")), BigInteger.valueOf(6).multiply(ICX).divide(BigInteger.TEN)); + assertEquals(toBigInt((String) sponsorData.get(0).get("sponsor_bond_amount")), BigInteger.valueOf(15).multiply(ICX)); + assertEquals(sponsorData.get(0).get("total_installment_count"), "0x3"); + assertEquals(toBigInt((String) sponsorData.get(0).get("total_installment_paid")), BigInteger.valueOf(2).multiply(ICX).divide(BigInteger.TEN)); + assertEquals(toBigInt((String) sponsorProject.get("withdraw_amount_bnUSD")), BigInteger.valueOf(2).multiply(ICX).divide(BigInteger.TEN)); } - - private Map getContributorFunds(Address contributorAddr){ + private Map getContributorFunds(Address contributorAddr) { return readerClient.cpsTreasury.getContributorProjectedFund(contributorAddr); } - private Map getSponsorFunds(Address sponsorAddr){ + private Map getSponsorFunds(Address sponsorAddr) { return readerClient.cpsTreasury.getSponsorProjectedFund(sponsorAddr); } + @DisplayName("submit first milestone") @Test @Order(8) - public void submitMilestoneReport(){ + public void submitMilestoneReport() { List proposalsIpfs = readerClient.cpsCore.getProposalsKeysByStatus(ACTIVE); - assertEquals(proposalsIpfs.size(),1); - assertEquals(proposalsIpfs.get(0),"Test_Proposal_1"); + assertEquals(proposalsIpfs.size(), 1); + assertEquals(proposalsIpfs.get(0), "Test_Proposal_1"); List> activeProposal = readerClient.cpsCore.getActiveProposals(testClient.getAddress()); - assertEquals( "0x0", activeProposal.get(0).get("new_progress_report")); + assertEquals("0x0", activeProposal.get(0).get("new_progress_report")); - CPSCoreInterface.ProgressReportAttributes progressReportAttributes = createProgressReport("1"); + CPSCoreInterface.ProgressReportAttributes progressReportAttributes = createProgressReport("1", "Test_Proposal_1"); CPSCoreInterface.MilestoneSubmission submission = new CPSCoreInterface.MilestoneSubmission(); submission.id = 1; submission.status = true; CPSCoreInterface.MilestoneSubmission[] milestoneSubmissions = new CPSCoreInterface.MilestoneSubmission[]{submission}; - testClient.cpsCore.submitProgressReport(progressReportAttributes,milestoneSubmissions); + testClient.cpsCore.submitProgressReport(progressReportAttributes, milestoneSubmissions); activeProposal = readerClient.cpsCore.getActiveProposals(testClient.getAddress()); - assertEquals( "0x1", activeProposal.get(0).get("new_progress_report")); + assertEquals("0x1", activeProposal.get(0).get("new_progress_report")); - Map progressReportDetails = getProgressReportDetails("Report_Proposal_1"); - assertEquals(1,toInt((String) progressReportDetails.get(MILESTONE_SUBMITTED_COUNT))); - assertEquals(WAITING,progressReportDetails.get(STATUS)); - assertEquals("Report_1",progressReportDetails.get(PROGRESS_REPORT_TITLE)); - assertEquals("Report_Proposal_1",progressReportDetails.get(REPORT_HASH)); + Map progressReportDetails = getProgressReportDetails("Test_Proposal_1_Report_Proposal_1"); + assertEquals(1, toInt((String) progressReportDetails.get(MILESTONE_SUBMITTED_COUNT))); + assertEquals(WAITING, progressReportDetails.get(STATUS)); + assertEquals("Test_Proposal_1_Report_1", progressReportDetails.get(PROGRESS_REPORT_TITLE)); + assertEquals("Test_Proposal_1_Report_Proposal_1", progressReportDetails.get(REPORT_HASH)); - int milestoneStatus = getMilestoneStatus("Test_Proposal_1",1); - assertEquals(MILESTONE_REPORT_COMPLETED,milestoneStatus); + int milestoneStatus = getMilestoneStatus("Test_Proposal_1", 1); + assertEquals(MILESTONE_REPORT_COMPLETED, milestoneStatus); } - private ProgressReportAttributes createProgressReport(String no){ + private ProgressReportAttributes createProgressReport(String no, String ipfsHash) { ProgressReportAttributes progressReportAttributes = new ProgressReportAttributes(); - progressReportAttributes.ipfs_hash = "Test_Proposal_1"; - progressReportAttributes.progress_report_title = "Report_"+no; - progressReportAttributes.report_hash ="Report_Proposal_"+no; - progressReportAttributes.ipfs_link = "https://proposal_"+ no; + progressReportAttributes.ipfs_hash = ipfsHash; + progressReportAttributes.progress_report_title = ipfsHash + "_Report_" + no; + progressReportAttributes.report_hash = ipfsHash + "_Report_Proposal_" + no; + progressReportAttributes.ipfs_link = "https://proposal_" + no; progressReportAttributes.budget_adjustment = false; progressReportAttributes.additional_budget = BigInteger.ZERO; progressReportAttributes.additional_month = 0; @@ -355,55 +355,55 @@ public void voteOnMilestone() throws InterruptedException { ownerClient.cpsCore.updatePeriod(); Thread.sleep(2000); - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Voting Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Voting Period"); - MilestoneVoteAttributes[] voteAttributes = new MilestoneVoteAttributes[]{vote(1,APPROVE)}; + MilestoneVoteAttributes[] voteAttributes = new MilestoneVoteAttributes[]{vote(1, APPROVE)}; - List> expectedMilestoneData = new ArrayList<>(7); + List> expectedMilestoneData = new ArrayList<>(7); for (int i = 0; i < cpsClients.size(); i++) { - cpsClients.get(i).cpsCore.voteProgressReport("Report_Proposal_1","Working well " + i, - voteAttributes,null,false); + cpsClients.get(i).cpsCore.voteProgressReport("Test_Proposal_1_Report_Proposal_1", "Working well " + i, + voteAttributes, null, false); expectedMilestoneData.add(Map.of( - ADDRESS,cpsClients.get(i).getAddress(), - PREP_NAME,cpsClients.get(i).getAddress(), - VOTE_REASON,"Working well "+ i, - VOTE,APPROVE)); + ADDRESS, cpsClients.get(i).getAddress(), + PREP_NAME, cpsClients.get(i).getAddress(), + VOTE_REASON, "Working well " + i, + VOTE, APPROVE)); } - Map progressReportVote = getProgressReportVote("Report_Proposal_1"); - assertEquals(toInt((String) progressReportVote.get("total_voters")),7); + Map progressReportVote = getProgressReportVote("Test_Proposal_1_Report_Proposal_1"); + assertEquals(toInt((String) progressReportVote.get("total_voters")), 7); - Map milestoneVoteResult = getMilestoneReport("Report_Proposal_1", 1); - assertEquals(toInt((String) milestoneVoteResult.get(APPROVE_VOTERS)),7); - assertEquals(toInt((String) milestoneVoteResult.get(REJECT_VOTERS)),0); + Map milestoneVoteResult = getMilestoneReport("Test_Proposal_1_Report_Proposal_1", 1); + assertEquals(toInt((String) milestoneVoteResult.get(APPROVE_VOTERS)), 7); + assertEquals(toInt((String) milestoneVoteResult.get(REJECT_VOTERS)), 0); - List> actualMilestoneData = (List>) milestoneVoteResult.get(DATA); + List> actualMilestoneData = (List>) milestoneVoteResult.get(DATA); for (int i = 0; i < 7; i++) { - assertEquals(expectedMilestoneData.get(0).get(ADDRESS).toString(),actualMilestoneData.get(0).get(ADDRESS)); + assertEquals(expectedMilestoneData.get(0).get(ADDRESS).toString(), actualMilestoneData.get(0).get(ADDRESS)); } - int milestoneStatus = getMilestoneStatus("Test_Proposal_1",1); - assertEquals(MILESTONE_REPORT_COMPLETED,milestoneStatus); + int milestoneStatus = getMilestoneStatus("Test_Proposal_1", 1); + assertEquals(MILESTONE_REPORT_COMPLETED, milestoneStatus); } - private int getMilestoneStatus(String ipfsHash, int milestoneId){ - return readerClient.cpsCore.getMileststoneStatusOf(ipfsHash,milestoneId); + private int getMilestoneStatus(String ipfsHash, int milestoneId) { + return readerClient.cpsCore.getMileststoneStatusOf(ipfsHash, milestoneId); } - private Map getMilestoneReport(String reportHash, int milestoneId){ - return readerClient.cpsCore.getMilestoneVoteResult(reportHash,milestoneId); + private Map getMilestoneReport(String reportHash, int milestoneId) { + return readerClient.cpsCore.getMilestoneVoteResult(reportHash, milestoneId); } - private Map getProgressReportDetails(String reportHash){ + private Map getProgressReportDetails(String reportHash) { return readerClient.cpsCore.getProgressReportsByHash(reportHash); } - private Map getProgressReportVote(String reportHash){ + private Map getProgressReportVote(String reportHash) { return readerClient.cpsCore.getProgressReportResult(reportHash); } @@ -412,33 +412,32 @@ private Map getProgressReportVote(String reportHash){ @Order(10) public void submitAllMilestoneReport() throws InterruptedException { updateToApplicationPeriod(); - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Application Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Application Period"); - int milestoneStatus = getMilestoneStatus("Test_Proposal_1",1); - assertEquals(MILESTONE_REPORT_APPROVED,milestoneStatus); + int milestoneStatus = getMilestoneStatus("Test_Proposal_1", 1); + assertEquals(MILESTONE_REPORT_APPROVED, milestoneStatus); // verifying installment count and funds record - Map contributorProject = getContributorFunds(testClient.getAddress()); - List> contributorData = (List> )contributorProject.get("data"); - assertEquals(toBigInt((String) contributorData.get(0).get("installment_amount")),BigInteger.valueOf(40).multiply(ICX)); - assertEquals(toBigInt((String) contributorData.get(0).get("total_installment_paid")),BigInteger.valueOf(40).multiply(ICX)); - assertEquals( contributorData.get(0).get("total_times_installment_paid"),"0x1"); - assertEquals(contributorProject.get("project_count"),"0x1"); - assertEquals(toBigInt((String) contributorProject.get("withdraw_amount_bnUSD")),BigInteger.valueOf(40).multiply(ICX)); - + Map contributorProject = getContributorFunds(testClient.getAddress()); + List> contributorData = (List>) contributorProject.get("data"); + assertEquals(toBigInt((String) contributorData.get(0).get("installment_amount")), BigInteger.valueOf(40).multiply(ICX)); + assertEquals(toBigInt((String) contributorData.get(0).get("total_installment_paid")), BigInteger.valueOf(40).multiply(ICX)); + assertEquals(contributorData.get(0).get("total_times_installment_paid"), "0x1"); + assertEquals(contributorProject.get("project_count"), "0x1"); + assertEquals(toBigInt((String) contributorProject.get("withdraw_amount_bnUSD")), BigInteger.valueOf(40).multiply(ICX)); - Map sponsorProject = getSponsorFunds(cpsClients.get(0).getAddress()); - List> sponsorData = (List> )sponsorProject.get("data"); - assertEquals(toBigInt((String) sponsorData.get(0).get("installment_amount")),BigInteger.valueOf(6).multiply(ICX).divide(BigInteger.TEN)); - assertEquals(toBigInt((String) sponsorData.get(0).get("total_installment_paid")),BigInteger.valueOf(8).multiply(ICX).divide(BigInteger.TEN)); - assertEquals( sponsorData.get(0).get("total_times_installment_paid"),"0x1"); - assertEquals(toBigInt((String) sponsorProject.get("withdraw_amount_bnUSD")),BigInteger.valueOf(8).multiply(ICX).divide(BigInteger.TEN)); + Map sponsorProject = getSponsorFunds(cpsClients.get(0).getAddress()); + List> sponsorData = (List>) sponsorProject.get("data"); + assertEquals(toBigInt((String) sponsorData.get(0).get("installment_amount")), BigInteger.valueOf(6).multiply(ICX).divide(BigInteger.TEN)); + assertEquals(toBigInt((String) sponsorData.get(0).get("total_installment_paid")), BigInteger.valueOf(8).multiply(ICX).divide(BigInteger.TEN)); + assertEquals(sponsorData.get(0).get("total_times_installment_paid"), "0x1"); + assertEquals(toBigInt((String) sponsorProject.get("withdraw_amount_bnUSD")), BigInteger.valueOf(8).multiply(ICX).divide(BigInteger.TEN)); - CPSCoreInterface.ProgressReportAttributes progressReportAttributes = createProgressReport("2"); + CPSCoreInterface.ProgressReportAttributes progressReportAttributes = createProgressReport("2", "Test_Proposal_1"); CPSCoreInterface.MilestoneSubmission submissionNo2 = new CPSCoreInterface.MilestoneSubmission(); submissionNo2.id = 2; @@ -449,17 +448,17 @@ public void submitAllMilestoneReport() throws InterruptedException { submissionNo3.status = true; CPSCoreInterface.MilestoneSubmission[] milestoneSubmissions = new CPSCoreInterface.MilestoneSubmission[]{ - submissionNo2,submissionNo3}; + submissionNo2, submissionNo3}; - testClient.cpsCore.submitProgressReport(progressReportAttributes,milestoneSubmissions); + testClient.cpsCore.submitProgressReport(progressReportAttributes, milestoneSubmissions); - Map progressReportDetails = getProgressReportDetails("Report_Proposal_2"); - assertEquals(2,toInt((String) progressReportDetails.get(MILESTONE_SUBMITTED_COUNT))); + Map progressReportDetails = getProgressReportDetails("Test_Proposal_1_Report_Proposal_2"); + assertEquals(2, toInt((String) progressReportDetails.get(MILESTONE_SUBMITTED_COUNT))); // assertEquals(new String[]{"0x2","0x3"},progressReportDetails.get("milestoneId")); - assertEquals(WAITING,progressReportDetails.get(STATUS)); - assertEquals("Report_2",progressReportDetails.get(PROGRESS_REPORT_TITLE)); - assertEquals("Report_Proposal_2",progressReportDetails.get(REPORT_HASH)); + assertEquals(WAITING, progressReportDetails.get(STATUS)); + assertEquals("Test_Proposal_1_Report_2", progressReportDetails.get(PROGRESS_REPORT_TITLE)); + assertEquals("Test_Proposal_1_Report_Proposal_2", progressReportDetails.get(REPORT_HASH)); } @@ -473,43 +472,43 @@ public void voteOnAllMilestone() throws InterruptedException { ownerClient.cpsCore.updatePeriod(); Thread.sleep(2000); - Map periodStatus = getPeriodStatus(); - assertEquals(periodStatus.get(PERIOD_NAME),"Voting Period"); + Map periodStatus = getPeriodStatus(); + assertEquals(periodStatus.get(PERIOD_NAME), "Voting Period"); - MilestoneVoteAttributes[] voteAttributes = new MilestoneVoteAttributes[]{vote(2,APPROVE), vote(3,APPROVE)}; + MilestoneVoteAttributes[] voteAttributes = new MilestoneVoteAttributes[]{vote(2, APPROVE), vote(3, APPROVE)}; - List> expectedMilestoneData = new ArrayList<>(7); + List> expectedMilestoneData = new ArrayList<>(7); for (int i = 0; i < cpsClients.size(); i++) { - cpsClients.get(i).cpsCore.voteProgressReport("Report_Proposal_2","Project is completed " + i, - voteAttributes,null,false); + cpsClients.get(i).cpsCore.voteProgressReport("Test_Proposal_1_Report_Proposal_2", "Project is completed " + i, + voteAttributes, null, false); expectedMilestoneData.add(Map.of( - ADDRESS,cpsClients.get(i).getAddress(), - PREP_NAME,cpsClients.get(i).getAddress(), - VOTE_REASON,"Project is completed "+ i, - VOTE,APPROVE)); + ADDRESS, cpsClients.get(i).getAddress(), + PREP_NAME, cpsClients.get(i).getAddress(), + VOTE_REASON, "Project is completed " + i, + VOTE, APPROVE)); } - Map progressReportVote = getProgressReportVote("Report_Proposal_2"); - assertEquals(toInt((String) progressReportVote.get("total_voters")),7); + Map progressReportVote = getProgressReportVote("Test_Proposal_1_Report_Proposal_2"); + assertEquals(toInt((String) progressReportVote.get("total_voters")), 7); - Map milestoneVoteResult = getMilestoneReport("Report_Proposal_2", 2); - assertEquals(toInt((String) milestoneVoteResult.get(APPROVE_VOTERS)),7); - assertEquals(toInt((String) milestoneVoteResult.get(REJECT_VOTERS)),0); + Map milestoneVoteResult = getMilestoneReport("Test_Proposal_1_Report_Proposal_2", 2); + assertEquals(toInt((String) milestoneVoteResult.get(APPROVE_VOTERS)), 7); + assertEquals(toInt((String) milestoneVoteResult.get(REJECT_VOTERS)), 0); // assertEquals(milestoneVoteResult.get(DATA),expectedMilestoneData); - List> actualMilestoneData = (List>) milestoneVoteResult.get(DATA); + List> actualMilestoneData = (List>) milestoneVoteResult.get(DATA); for (int i = 0; i < 7; i++) { - assertEquals(expectedMilestoneData.get(0).get(ADDRESS).toString(),actualMilestoneData.get(0).get(ADDRESS)); - assertEquals(expectedMilestoneData.get(0).get(PREP_NAME).toString(),actualMilestoneData.get(0).get(PREP_NAME)); - assertEquals(expectedMilestoneData.get(0).get(VOTE_REASON),actualMilestoneData.get(0).get(VOTE_REASON)); - assertEquals(expectedMilestoneData.get(0).get(VOTE),actualMilestoneData.get(0).get(VOTE)); + assertEquals(expectedMilestoneData.get(0).get(ADDRESS).toString(), actualMilestoneData.get(0).get(ADDRESS)); + assertEquals(expectedMilestoneData.get(0).get(PREP_NAME).toString(), actualMilestoneData.get(0).get(PREP_NAME)); + assertEquals(expectedMilestoneData.get(0).get(VOTE_REASON), actualMilestoneData.get(0).get(VOTE_REASON)); + assertEquals(expectedMilestoneData.get(0).get(VOTE), actualMilestoneData.get(0).get(VOTE)); } - int milestoneStatus = getMilestoneStatus("Test_Proposal_1",2); - assertEquals(MILESTONE_REPORT_COMPLETED,milestoneStatus); + int milestoneStatus = getMilestoneStatus("Test_Proposal_1", 2); + assertEquals(MILESTONE_REPORT_COMPLETED, milestoneStatus); } @@ -519,25 +518,25 @@ public void voteOnAllMilestone() throws InterruptedException { public void completeProposal1() throws InterruptedException { updateToApplicationPeriod(); - int milestoneStatus = getMilestoneStatus("Test_Proposal_1",3); - assertEquals(MILESTONE_REPORT_APPROVED,milestoneStatus); + int milestoneStatus = getMilestoneStatus("Test_Proposal_1", 3); + assertEquals(MILESTONE_REPORT_APPROVED, milestoneStatus); - milestoneStatus = getMilestoneStatus("Test_Proposal_1",2); - assertEquals(MILESTONE_REPORT_APPROVED,milestoneStatus); + milestoneStatus = getMilestoneStatus("Test_Proposal_1", 2); + assertEquals(MILESTONE_REPORT_APPROVED, milestoneStatus); List proposalsIpfs = readerClient.cpsCore.getProposalsKeysByStatus(COMPLETED); - assertEquals(proposalsIpfs.size(),1); - assertEquals(proposalsIpfs.get(0),"Test_Proposal_1"); + assertEquals(proposalsIpfs.size(), 1); + assertEquals(proposalsIpfs.get(0), "Test_Proposal_1"); - assertEquals(BigInteger.ZERO,readerClient.bnUSD.balanceOf(testClient.getAddress())); + assertEquals(BigInteger.ZERO, readerClient.bnUSD.balanceOf(testClient.getAddress())); testClient.cpsTreasury.claimReward(); - assertEquals(BigInteger.valueOf(100).multiply(ICX),readerClient.bnUSD.balanceOf(testClient.getAddress())); + assertEquals(BigInteger.valueOf(100).multiply(ICX), readerClient.bnUSD.balanceOf(testClient.getAddress())); CPSClient sponsorClient = cpsClients.get(0); - assertEquals(BigInteger.valueOf(35).multiply(ICX),readerClient.bnUSD.balanceOf(sponsorClient.getAddress())); + assertEquals(BigInteger.valueOf(35).multiply(ICX), readerClient.bnUSD.balanceOf(sponsorClient.getAddress())); sponsorClient.cpsTreasury.claimReward(); - assertEquals(BigInteger.valueOf(37).multiply(ICX),readerClient.bnUSD.balanceOf(sponsorClient.getAddress())); + assertEquals(BigInteger.valueOf(37).multiply(ICX), readerClient.bnUSD.balanceOf(sponsorClient.getAddress())); } @@ -545,7 +544,7 @@ public void completeProposal1() throws InterruptedException { - private MilestoneVoteAttributes vote(int id, String vote){ + private MilestoneVoteAttributes vote(int id, String vote) { MilestoneVoteAttributes milestoneVoteAttributes = new MilestoneVoteAttributes(); milestoneVoteAttributes.id = id; @@ -554,7 +553,6 @@ private MilestoneVoteAttributes vote(int id, String vote){ } - private void updateToApplicationPeriod() throws InterruptedException { updateNextBlock(); ownerClient.cpsCore.updatePeriod(); @@ -573,18 +571,17 @@ private Integer toInt(String inputString) { } - private void voteByPrep(CPSClient caller, String ipfsKey, String vote, String voteReason, - @Optional boolean voteChange){ + @Optional boolean voteChange) { - caller.cpsCore.voteProposal(ipfsKey,vote,voteReason,voteChange); + caller.cpsCore.voteProposal(ipfsKey, vote, voteReason, voteChange); } - private Map getProposalDetails(String ipfsHash){ + private Map getProposalDetails(String ipfsHash) { return readerClient.cpsCore.getProposalDetailsByHash(ipfsHash); } - private Map getProposalVote(String ipfsHash){ + private Map getProposalVote(String ipfsHash) { return readerClient.cpsCore.getVoteResult(ipfsHash); } @@ -613,34 +610,42 @@ private void bnUSDMint(Address to, BigInteger amount){ } - private Map getPeriodStatus(){ + private Map getPeriodStatus() { return readerClient.cpsCore.getPeriodStatus(); } - private Map loginPrep(Address prepAddress){ + private Map loginPrep(Address prepAddress) { return readerClient.cpsCore.loginPrep(prepAddress); } - private Map unregisteredPrepData(){ + private Map unregisteredPrepData() { return Map.of(IS_PREP, BigInteger.ONE, IS_REGISTERED, BigInteger.ZERO, PAY_PENALTY, BigInteger.ZERO, VOTING_PREP, BigInteger.ZERO); } - private Map votingPrepData(){ + private Map votingPrepData() { return Map.of(IS_PREP, BigInteger.ONE, IS_REGISTERED, BigInteger.ONE, PAY_PENALTY, BigInteger.ZERO, VOTING_PREP, BigInteger.ONE); } - private Map registerPrepData(){ + private Map registerPrepData() { return Map.of(IS_PREP, BigInteger.ONE, IS_REGISTERED, BigInteger.ONE, PAY_PENALTY, BigInteger.ZERO, VOTING_PREP, BigInteger.ZERO); } + private Map denyPrepData() { + return Map.of(IS_PREP, BigInteger.ONE, + IS_REGISTERED, BigInteger.ZERO, + PAY_PENALTY, BigInteger.ONE, + PENALTY_AMOUNT1, (BigInteger.TWO.multiply(ICX)).divide(BigInteger.valueOf(100)), + VOTING_PREP, BigInteger.ZERO); + } + }