1- using Binance . Net . Enums ;
21using Binance . Net . Objects . Models ;
3- using BinanceBot . Market . Core ;
42using BinanceBot . Market . Domain ;
3+ using ContractType = BinanceBot . Market . Domain . ContractType ;
54
65namespace BinanceBot . Market . Tests . Core ;
76
87public class MarketDepthTests
98{
9+ private static MarketDepth CreateTestMarketDepth ( ) =>
10+ new MarketDepth ( new MarketSymbol ( "BTC" , "USDT" , ContractType . Spot ) ) ;
1011 [ Fact ]
1112 public void Constructor_WithValidSymbol_CreatesInstance ( )
1213 {
13- // Arrange & Act
14- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
14+ // Arrange
15+ var symbol = new MarketSymbol ( "BTC" , "USDT" , ContractType . Spot ) ;
16+
17+ // Act
18+ var marketDepth = new MarketDepth ( symbol ) ;
1519
1620 // Assert
17- Assert . Equal ( "BTCUSDT" , marketDepth . Symbol ) ;
21+ Assert . Equal ( symbol , marketDepth . Symbol ) ;
1822 Assert . Null ( marketDepth . LastUpdateTime ) ;
1923 Assert . Empty ( marketDepth . Asks ) ;
2024 Assert . Empty ( marketDepth . Bids ) ;
2125 }
2226
23- [ Theory ]
24- [ InlineData ( "" ) ]
25- public void Constructor_WithInvalidSymbol_ThrowsArgumentException ( string symbol )
27+ [ Fact ]
28+ public void Constructor_WithNullSymbol_ThrowsArgumentException ( )
2629 {
2730 // Act & Assert
28- Assert . Throws < ArgumentException > ( ( ) => new MarketDepth ( symbol ) ) ;
31+ Assert . Throws < ArgumentException > ( ( ) => new MarketDepth ( null ) ) ;
2932 }
3033
3134 [ Fact ]
3235 public void UpdateDepth_WithValidData_UpdatesOrderBook ( )
3336 {
3437 // Arrange
35- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
38+ var marketDepth = CreateTestMarketDepth ( ) ;
3639 var asks = new List < BinanceOrderBookEntry >
3740 {
3841 new ( ) { Price = 50000m , Quantity = 1.5m } ,
@@ -59,7 +62,7 @@ public void UpdateDepth_WithValidData_UpdatesOrderBook()
5962 public void UpdateDepth_WithOldUpdateTime_IgnoresUpdate ( )
6063 {
6164 // Arrange
62- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
65+ var marketDepth = CreateTestMarketDepth ( ) ;
6366 var asks = new List < BinanceOrderBookEntry >
6467 {
6568 new ( ) { Price = 50000m , Quantity = 1.5m }
@@ -86,7 +89,7 @@ public void UpdateDepth_WithOldUpdateTime_IgnoresUpdate()
8689 public void UpdateDepth_RemovesPriceLevelWithZeroQuantity ( )
8790 {
8891 // Arrange
89- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
92+ var marketDepth = CreateTestMarketDepth ( ) ;
9093 var asks = new List < BinanceOrderBookEntry >
9194 {
9295 new ( ) { Price = 50000m , Quantity = 1.5m } ,
@@ -114,7 +117,7 @@ public void UpdateDepth_RemovesPriceLevelWithZeroQuantity()
114117 public void BestPair_WhenOrderBookIsEmpty_ReturnsNull ( )
115118 {
116119 // Arrange
117- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
120+ var marketDepth = CreateTestMarketDepth ( ) ;
118121
119122 // Act & Assert
120123 Assert . Null ( marketDepth . BestPair ) ;
@@ -124,7 +127,7 @@ public void BestPair_WhenOrderBookIsEmpty_ReturnsNull()
124127 public void BestPair_WhenOrderBookHasData_ReturnsPair ( )
125128 {
126129 // Arrange
127- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
130+ var marketDepth = CreateTestMarketDepth ( ) ;
128131 var asks = new List < BinanceOrderBookEntry >
129132 {
130133 new ( ) { Price = 50000m , Quantity = 1.5m }
@@ -149,7 +152,7 @@ public void BestPair_WhenOrderBookHasData_ReturnsPair()
149152 public void MarketDepthChanged_RaisesEvent_WhenDepthUpdated ( )
150153 {
151154 // Arrange
152- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
155+ var marketDepth = CreateTestMarketDepth ( ) ;
153156 MarketDepthChangedEventArgs ? eventArgs = null ;
154157 marketDepth . MarketDepthChanged += ( sender , e ) => eventArgs = e ;
155158
@@ -175,7 +178,7 @@ public void MarketDepthChanged_RaisesEvent_WhenDepthUpdated()
175178 public void MarketBestPairChanged_RaisesEvent_WhenBestPairChanges ( )
176179 {
177180 // Arrange
178- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
181+ var marketDepth = CreateTestMarketDepth ( ) ;
179182 var eventRaised = false ;
180183 marketDepth . MarketBestPairChanged += ( sender , e ) => eventRaised = true ;
181184
@@ -199,7 +202,7 @@ public void MarketBestPairChanged_RaisesEvent_WhenBestPairChanges()
199202 public void Asks_AreSortedAscending ( )
200203 {
201204 // Arrange
202- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
205+ var marketDepth = CreateTestMarketDepth ( ) ;
203206 var asks = new List < BinanceOrderBookEntry >
204207 {
205208 new ( ) { Price = 50100m , Quantity = 2.0m } ,
@@ -223,7 +226,7 @@ public void Asks_AreSortedAscending()
223226 public void Bids_AreSortedDescending ( )
224227 {
225228 // Arrange
226- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
229+ var marketDepth = CreateTestMarketDepth ( ) ;
227230 var asks = new List < BinanceOrderBookEntry >
228231 {
229232 new ( ) { Price = 50000m , Quantity = 1.0m }
@@ -247,7 +250,7 @@ public void Bids_AreSortedDescending()
247250 public void UpdateDepth_WithZeroOrNegativeUpdateTime_ThrowsArgumentOutOfRangeException ( )
248251 {
249252 // Arrange
250- var marketDepth = new MarketDepth ( "BTCUSDT" ) ;
253+ var marketDepth = CreateTestMarketDepth ( ) ;
251254 var asks = new List < BinanceOrderBookEntry >
252255 {
253256 new ( ) { Price = 50000m , Quantity = 1.5m }
0 commit comments