22#include <glog/logging.h>
23#include <gtest/gtest.h>
31using ::resdb::testing::EqualsProto;
34TEST(TxMempoolTest, AddTx) {
36 auto out = utxo.add_out();
38 out->set_address(
"0000");
39 utxo.set_address(
"0001");
42 EXPECT_EQ(pool.AddUTXO(utxo), 0);
44 int64_t value = pool.GetUTXOOutValue(0, 0,
"0000");
45 EXPECT_EQ(value, 100);
48TEST(TxMempoolTest, AddTxNoIdx) {
50 auto out = utxo.add_out();
52 out->set_address(
"0000");
54 utxo.set_address(
"0001");
57 EXPECT_EQ(pool.AddUTXO(utxo), 0);
59 int64_t value = pool.GetUTXOOutValue(1, 1,
"0000");
63TEST(TxMempoolTest, AddTxNoOutAddr) {
65 auto out = utxo.add_out();
67 out->set_address(
"0000");
69 utxo.set_address(
"0001");
72 EXPECT_EQ(pool.AddUTXO(utxo), 0);
74 int64_t value = pool.GetUTXOOutValue(1, 0,
"0002");
78TEST(TxMempoolTest, AddTxNoAddr) {
80 auto out = utxo.add_out();
82 out->set_address(
"0000");
84 utxo.set_address(
"0001");
87 EXPECT_EQ(pool.AddUTXO(utxo), 0);
89 int64_t value = pool.GetUTXOOutValue(2, 0,
"0000");
93TEST(TxMempoolTest, AddTxMarkSpent) {
95 auto out = utxo.add_out();
97 out->set_address(
"0000");
99 utxo.set_address(
"0001");
102 EXPECT_EQ(pool.AddUTXO(utxo), 0);
104 int64_t value = pool.MarkSpend(0, 0,
"0000");
105 EXPECT_EQ(value, 100);
107 EXPECT_EQ(pool.GetUTXOOutValue(0, 0,
"0000"), -1);
110TEST(TxMempoolTest, AddTxAndGet) {
112 auto out = utxo.add_out();
114 out->set_address(
"0000");
116 utxo.set_address(
"0001");
119 EXPECT_EQ(pool.AddUTXO(utxo), 0);
121 auto value_or = pool.GetUTXO(0, 0,
"0000");
122 EXPECT_TRUE(value_or.ok());
124 EXPECT_EQ((*value_or).value(), 100);
133 auto out = utxo1.add_out();
135 out->set_address(
"0002");
136 utxo1.set_address(
"0001");
140 auto in = utxo2.add_in();
143 auto out = utxo2.add_out();
145 out->set_address(
"0003");
146 utxo2.set_address(
"0002");
149 auto in = utxo3.add_in();
152 auto out = utxo3.add_out();
154 out->set_address(
"0004");
155 utxo3.set_address(
"0003");
159 EXPECT_EQ(pool.AddUTXO(utxo1), 0);
160 EXPECT_EQ(pool.AddUTXO(utxo2), 1);
161 EXPECT_EQ(pool.AddUTXO(utxo3), 2);
163 utxo1.set_transaction_id(0);
164 utxo2.set_transaction_id(1);
165 utxo3.set_transaction_id(2);
167 auto list = pool.GetUTXO(-1, 2);
168 EXPECT_EQ(list.size(), 2);
169 EXPECT_THAT(list[0], EqualsProto(utxo2));
170 EXPECT_THAT(list[1], EqualsProto(utxo3));
173 auto list = pool.GetUTXO(-1, 3);
174 EXPECT_EQ(list.size(), 3);
175 EXPECT_THAT(list[0], EqualsProto(utxo1));
176 EXPECT_THAT(list[1], EqualsProto(utxo2));
177 EXPECT_THAT(list[2], EqualsProto(utxo3));
180 auto list = pool.GetUTXO(1, 2);
181 EXPECT_EQ(list.size(), 2);
182 EXPECT_THAT(list[0], EqualsProto(utxo1));
183 EXPECT_THAT(list[1], EqualsProto(utxo2));
186 auto list = pool.GetUTXO(2, 4);
187 EXPECT_EQ(list.size(), 3);
188 EXPECT_THAT(list[0], EqualsProto(utxo1));
189 EXPECT_THAT(list[1], EqualsProto(utxo2));
190 EXPECT_THAT(list[2], EqualsProto(utxo3));
TEST(NetworkUtilsTest, GetDNSName)