public void Setup() { // Setup known state valid State.required for a Send to be valid ValidEdgeCurrencyWalletsState = new EdgeCurrencyWalletsState(); // setup wallet var edgeCurrencyWallet = new EdgeCurrencyWallet { SelectedCurrencyCode = "AGLD" }; edgeCurrencyWallet.Balances.Add("AGLD", AgldStartBalance); //1.5 AGLD ValidEdgeCurrencyWalletsState.EdgeCurrencyWallets.Add( WalletId, edgeCurrencyWallet); EdgeCurrencyWalletsState.Initialize(ValidEdgeCurrencyWalletsState); SendAction = new SendAction { CurrencyCode = "AGLD", DestinationAddress = "0xe3d6f1e0434b870c3b3a0066bdcbffd4ba3f7ea6", EdgeCurrencyWalletId = "1fu3+YTRMVRb6R6uwO7DDCH31iVKkBMtkYHLA0P3hMo=", NativeAmount = "500000000000000000", // 0.5 AGLD Fee = FeeOption.Standard, }; }
private void MapActionToState(UpdateEdgeCurrencyWalletAction aUpdateEdgeCurrencyWalletAction) { if (!EdgeCurrencyWalletsState.EdgeCurrencyWallets.ContainsKey(aUpdateEdgeCurrencyWalletAction.Id)) { EdgeCurrencyWalletsState.EdgeCurrencyWallets[aUpdateEdgeCurrencyWalletAction.Id] = new EdgeCurrencyWallet(); } EdgeCurrencyWallet edgeCurrencyWallet = EdgeCurrencyWalletsState.EdgeCurrencyWallets[aUpdateEdgeCurrencyWalletAction.Id]; edgeCurrencyWallet.Id = aUpdateEdgeCurrencyWalletAction.Id; edgeCurrencyWallet.FiatCurrencyCode = aUpdateEdgeCurrencyWalletAction.FiatCurrencyCode; edgeCurrencyWallet.Keys = aUpdateEdgeCurrencyWalletAction.Keys; edgeCurrencyWallet.Balances = aUpdateEdgeCurrencyWalletAction.Balances; edgeCurrencyWallet.Name = aUpdateEdgeCurrencyWalletAction.Name; edgeCurrencyWallet.EdgeTransactions = MapEdgeTransactions(aUpdateEdgeCurrencyWalletAction); }
public void ShouldClone() { //Arrange var edgeCurrencyWallet = new EdgeCurrencyWallet { Id = "EdgeCurrencyWallet1", SelectedCurrencyCode = "abc", FiatCurrencyCode = "FCC", Balances = new Dictionary <string, string>() { { "ETH", "1000" }, { "AGLD", "2000" } }, Keys = new Dictionary <string, string>() { { "somekey", "somevalue" }, { "someotherkey", "someothervalue" } }, EdgeTransactions = new List <EdgeTransaction> { new EdgeTransaction { Date = new DateTime(), CurrencyCode = "Currency Code", BlockHeight = 2, NativeAmount = "3", NetworkFee = "NetworkFee", OurReceiveAddresses = new List <string> { "string1", "string2" }, SignedTx = "SignedTx", ParentNetworkFee = "ParentNetworkFee" }, new EdgeTransaction { Date = new DateTime(), CurrencyCode = "Currency Code2", BlockHeight = 5, NativeAmount = "6", NetworkFee = "NetworkFee2", OurReceiveAddresses = new List <string> { "string3", "string4" }, SignedTx = "SignedTx2", ParentNetworkFee = "ParentNetworkFee2" } } }; //Act var clonedEdgeCurrencyWallet = edgeCurrencyWallet.Clone() as EdgeCurrencyWallet; //Assert clonedEdgeCurrencyWallet.Id.ShouldBe(edgeCurrencyWallet.Id); clonedEdgeCurrencyWallet.SelectedCurrencyCode.ShouldBe(edgeCurrencyWallet.SelectedCurrencyCode); clonedEdgeCurrencyWallet.FiatCurrencyCode.ShouldBe(edgeCurrencyWallet.FiatCurrencyCode); clonedEdgeCurrencyWallet.Balances.ShouldBe(edgeCurrencyWallet.Balances); clonedEdgeCurrencyWallet.Keys.ShouldBe(edgeCurrencyWallet.Keys); clonedEdgeCurrencyWallet.EdgeTransactions.ShouldNotBeSameAs(edgeCurrencyWallet.EdgeTransactions); clonedEdgeCurrencyWallet.EdgeTransactions[0].OurReceiveAddresses[0].ShouldBe( edgeCurrencyWallet.EdgeTransactions[0].OurReceiveAddresses[0]); clonedEdgeCurrencyWallet.EdgeTransactions[1].OurReceiveAddresses[1].ShouldBe( edgeCurrencyWallet.EdgeTransactions[1].OurReceiveAddresses[1]); }
/// <summary> /// Test the clone ability of EdgeCurrencyWalletsState and all its child classes /// </summary> /// <returns></returns> public void Should_Clone() { // Arrange var original = new EdgeCurrencyWalletsState() { SelectedEdgeCurrencyWalletId = "EdgeCurrencyWallet1", EdgeCurrencyWallets = new Dictionary <string, EdgeCurrencyWallet>() { { "EdgeCurrencyWallet1", new EdgeCurrencyWallet { Id = "EdgeCurrencyWallet1", SelectedCurrencyCode = "abc", FiatCurrencyCode = "FCC", Balances = new Dictionary <string, string>() { { "ETH", "1000" }, { "AGLD", "2000" } }, Keys = new Dictionary <string, string>() { { "somekey", "somevalue" }, { "someotherkey", "someothervalue" } } } }, { "EdgeCurrencyWallet2", new EdgeCurrencyWallet { Id = "EdgeCurrencyWallet2", SelectedCurrencyCode = "efg", FiatCurrencyCode = "Fiat", Balances = new Dictionary <string, string>() { { "BTC", "444" }, { "NANO", "6666" } }, Keys = new Dictionary <string, string>() { { "somekey2", "somevalue2" }, { "someotherkey2", "someothervalue2" } } } } } }; // Act original.SelectedEdgeCurrencyWallet.ShouldNotBeNull(); // Test the derived SelectedEdgeCurrencyWallet method. var clone = original.Clone() as EdgeCurrencyWalletsState; // Assert clone.EdgeCurrencyWallets.Count.ShouldBe(2); // Check EdgeCurrencyWallet1 EdgeCurrencyWallet edgeCurrencyWallet1 = clone.EdgeCurrencyWallets["EdgeCurrencyWallet1"]; // if not there will fail. edgeCurrencyWallet1.SelectedCurrencyCode.ShouldBe("abc"); edgeCurrencyWallet1.Id.ShouldBe("EdgeCurrencyWallet1"); edgeCurrencyWallet1.FiatCurrencyCode.ShouldBe("FCC"); edgeCurrencyWallet1.Balances["ETH"].ShouldBe("1000"); edgeCurrencyWallet1.Balances["AGLD"].ShouldBe("2000"); edgeCurrencyWallet1.Keys["somekey"].ShouldBe("somevalue"); edgeCurrencyWallet1.Keys["someotherkey"].ShouldBe("someothervalue"); // Check EdgeCurrencyWallet2 EdgeCurrencyWallet edgeCurrencyWallet2 = clone.EdgeCurrencyWallets["EdgeCurrencyWallet2"]; // if not there will fail. edgeCurrencyWallet2.SelectedCurrencyCode.ShouldBe("efg"); edgeCurrencyWallet2.Id.ShouldBe("EdgeCurrencyWallet2"); edgeCurrencyWallet2.FiatCurrencyCode.ShouldBe("Fiat"); edgeCurrencyWallet2.Balances["BTC"].ShouldBe("444"); edgeCurrencyWallet2.Balances["NANO"].ShouldBe("6666"); edgeCurrencyWallet2.Keys["somekey2"].ShouldBe("somevalue2"); edgeCurrencyWallet2.Keys["someotherkey2"].ShouldBe("someothervalue2"); }