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()); }
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()); }
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)); }