public async Task TestAddressOnlyHasInvalidTransactionShouldReturnErrorCode() { var exceptionThrown = false; try { var invalidBundleOne = CreateBundle(new TryteString("999999999999999")); var invalidBundleTwo = CreateBundle(new TryteString("999999999999999")); var messenger = new Mock <IMessenger>(); messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync( new List <Message> { new Message(invalidBundleOne.Transactions[0].ToTrytes()), new Message(invalidBundleTwo.Transactions[0].ToTrytes()) }); var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub(false)); await repository.LoadContactInformationByAddressAsync(new Address()); } catch (MessengerException exception) { exceptionThrown = true; Assert.AreEqual(ResponseCode.NoContactInformationPresent, exception.Code); } Assert.IsTrue(exceptionThrown); }
public async Task TestAddressHasInvalidTransactionsShouldBeSkippedAndReturnValidData() { var contactAddress = new Address(Seed.Random().Value); var ntruKey = InMemoryContactRepository.NtruKeyPair.PublicKey; var publicKeyTrytes = ntruKey.ToBytes().EncodeBytesAsString(); var requestAdressTrytes = new TryteString(publicKeyTrytes + Constants.LineBreak + contactAddress.Value + Constants.End).Concat(new Fragment()) .Concat(new Fragment()); var invalidBundle = CreateBundle(new TryteString("999999999999999")); var validBundle = CreateBundle(requestAdressTrytes); var messenger = new Mock <IMessenger>(); messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync( new List <Message> { new Message(invalidBundle.Transactions[0].ToTrytes()), new Message(validBundle.Transactions.Aggregate(new TryteString(), (current, tryteString) => current.Concat(tryteString.Fragment))) }); var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub()); var contact = await repository.LoadContactInformationByAddressAsync(new Address()); Assert.AreEqual(contactAddress.Value, contact.ContactAddress.Value); Assert.AreEqual(ntruKey.ToString(), contact.PublicKey.ToString()); }
public async Task TestAddressHasNoTransactionsShouldThrowExceptionWithErrorCode() { var exceptionThrown = false; try { var messenger = new Mock <IMessenger>(); messenger.Setup(r => r.GetMessagesByAddressAsync(It.IsAny <Address>())).ReturnsAsync(new List <Message>()); var repository = new ContactRepositoryStub(messenger.Object, new SignatureValidatorStub()); await repository.LoadContactInformationByAddressAsync(new Address()); } catch (MessengerException exception) { exceptionThrown = true; Assert.AreEqual(ResponseCode.NoContactInformationPresent, exception.Code); } Assert.IsTrue(exceptionThrown); }