Esempio n. 1
0
        public void Pay_Fails_WhenSenderIsNotApplicant()
        {
            // Setup incorrect sender.
            this.mockPersistentState.Setup(s => s.GetAddress(nameof(PassportApplication.Applicant))).Returns(ApplicantAddress);
            this.mockContractState.Setup(s => s.Message.Sender).Returns(Address.Zero);

            var contract = new PassportApplication(this.mockContractState.Object, AppId, ProviderAddress, RefNumber);

            // Setup set state.
            this.mockPersistentState.Setup(s => s.GetUInt32(nameof(PassportApplication.State))).Returns((uint)PassportApplication.StateType.MakeAppointment);

            // Attempt pay of wrong applicant should fail.
            Assert.Throws <SmartContractAssertException>(() => contract.Pay());
        }
Esempio n. 2
0
        public void Pay_Fails_WhenStateIsNotMakeAppointment(uint state)
        {
            // Setup correct applicant
            this.mockPersistentState.Setup(s => s.GetAddress(nameof(PassportApplication.Applicant))).Returns(ApplicantAddress);
            this.mockContractState.Setup(s => s.Message.Sender).Returns(ApplicantAddress);

            var contract = new PassportApplication(this.mockContractState.Object, AppId, ProviderAddress, RefNumber);

            // Setup wrong state.
            this.mockPersistentState.Setup(s => s.GetUInt32(nameof(PassportApplication.State))).Returns(state);

            // Attempt pay when state is not set to MakeAppointment should fail.
            Assert.Throws <SmartContractAssertException>(() => contract.Pay());
        }
Esempio n. 3
0
        public void Pay_Succeeds_WhenBalanceIsEnough()
        {
            // Setup incorrect sender.
            this.mockPersistentState.Setup(s => s.GetAddress(nameof(PassportApplication.Applicant))).Returns(ApplicantAddress);
            this.mockContractState.Setup(s => s.Message.Sender).Returns(ApplicantAddress);

            var contract = new PassportApplication(this.mockContractState.Object, AppId, ProviderAddress, RefNumber);

            // Setup set state.
            this.mockPersistentState.Setup(s => s.GetUInt32(nameof(PassportApplication.State))).Returns((uint)PassportApplication.StateType.MakeAppointment);

            // Setup sufficient balance
            this.mockPersistentState.Setup(s => s.GetUInt64(nameof(PassportApplication.Balance))).Returns(8000000000);

            contract.Pay();

            // Attempt pay of with sufficient balance should succeed.
            this.mockPersistentState.Verify(s => s.SetUInt32(nameof(PassportApplication.State), (uint)PassportApplication.StateType.PersonalAppearance));
        }