Skip to content

Commit f197bb0

Browse files
sanityclaude
andcommitted
test: add unit tests for active_transaction_count
Tests verify the method: - Returns 0 when no transactions are tracked - Correctly counts transactions for a single peer - Correctly sums transactions across multiple peers - Updates correctly after transactions are removed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 2014536 commit f197bb0

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

crates/core/src/ring/live_tx.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,59 @@ impl LiveTransactionTracker {
5959
.sum()
6060
}
6161
}
62+
63+
#[cfg(test)]
64+
mod tests {
65+
use super::*;
66+
use crate::operations::connect::ConnectMsg;
67+
68+
#[test]
69+
fn active_transaction_count_empty() {
70+
let tracker = LiveTransactionTracker::new();
71+
assert_eq!(tracker.active_transaction_count(), 0);
72+
}
73+
74+
#[test]
75+
fn active_transaction_count_single_peer() {
76+
let tracker = LiveTransactionTracker::new();
77+
let addr: SocketAddr = "127.0.0.1:8080".parse().unwrap();
78+
79+
tracker.add_transaction(addr, Transaction::new::<ConnectMsg>());
80+
assert_eq!(tracker.active_transaction_count(), 1);
81+
82+
tracker.add_transaction(addr, Transaction::new::<ConnectMsg>());
83+
assert_eq!(tracker.active_transaction_count(), 2);
84+
}
85+
86+
#[test]
87+
fn active_transaction_count_multiple_peers() {
88+
let tracker = LiveTransactionTracker::new();
89+
let addr1: SocketAddr = "127.0.0.1:8080".parse().unwrap();
90+
let addr2: SocketAddr = "127.0.0.1:8081".parse().unwrap();
91+
92+
tracker.add_transaction(addr1, Transaction::new::<ConnectMsg>());
93+
tracker.add_transaction(addr1, Transaction::new::<ConnectMsg>());
94+
tracker.add_transaction(addr2, Transaction::new::<ConnectMsg>());
95+
96+
assert_eq!(tracker.active_transaction_count(), 3);
97+
}
98+
99+
#[test]
100+
fn active_transaction_count_after_removal() {
101+
let tracker = LiveTransactionTracker::new();
102+
let addr: SocketAddr = "127.0.0.1:8080".parse().unwrap();
103+
104+
let tx1 = Transaction::new::<ConnectMsg>();
105+
let tx2 = Transaction::new::<ConnectMsg>();
106+
107+
tracker.add_transaction(addr, tx1);
108+
tracker.add_transaction(addr, tx2);
109+
assert_eq!(tracker.active_transaction_count(), 2);
110+
111+
tracker.remove_finished_transaction(tx1);
112+
assert_eq!(tracker.active_transaction_count(), 1);
113+
114+
tracker.remove_finished_transaction(tx2);
115+
assert_eq!(tracker.active_transaction_count(), 0);
116+
}
117+
}

0 commit comments

Comments
 (0)