コード例 #1
0
        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);
        }
コード例 #3
0
        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]);
        }
コード例 #4
0
        /// <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");
        }