public void TestGetAllAssetAddressesReturnsValidData()
        {
            using (var memoryState = new KeokenMemoryState())
                using (var address_source = new PaymentAddress("16TGufqQ9FPnEbixbD4ZjVabaP455roE6t"))
                    using (var address_target = new PaymentAddress("my2dxGb5jz43ktwGxg2doUaEb9WhZ9PQ7K"))
                    {
                        byte[] hash = Binary.HexStringToByteArray("000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
                        memoryState.InitialAssetId = 5;

                        memoryState.CreateAsset("test asset", 15, address_source, 10, hash);
                        memoryState.CreateAsset("test asset2", 999, address_source, 10, hash);

                        memoryState.CreateBalanceEntry(5, 15, address_source, address_target, 5, hash);

                        using (var ret = memoryState.GetAllAssetAddresses())
                        {
                            Assert.Equal <ulong>(3, ret.Count);
                            foreach (GetAllAssetsAddressesData data in ret)
                            {
                                if (data.AssetId == 5)
                                {
                                    if (data.AmountOwner.Encoded == address_target.Encoded)
                                    {
                                        Assert.Equal(15, data.Amount);
                                        Assert.Equal("test asset", data.AssetName);
                                        Assert.Equal(address_source.Encoded, data.AssetCreator.Encoded);
                                    }
                                    else
                                    {
                                        Assert.Equal(0, data.Amount);
                                        Assert.Equal("test asset", data.AssetName);
                                        Assert.Equal(address_source.Encoded, data.AssetCreator.Encoded);
                                        Assert.Equal(address_source.Encoded, data.AmountOwner.Encoded);
                                    }
                                }
                                else
                                {
                                    Assert.Equal <ulong>(6, data.AssetId);
                                    Assert.Equal(999, data.Amount);
                                    Assert.Equal("test asset2", data.AssetName);
                                    Assert.Equal(address_source.Encoded, data.AssetCreator.Encoded);
                                    Assert.Equal(address_source.Encoded, data.AmountOwner.Encoded);
                                }
                            }
                        }
                    }
        }