Skip to content

Commit

Permalink
test: add test for connect request in udp::handler
Browse files Browse the repository at this point in the history
  • Loading branch information
josecelano committed Sep 13, 2022
1 parent 2a85fab commit beb2570
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions src/udp/handlers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,3 +236,67 @@ fn handle_error(e: ServerError, transaction_id: TransactionId) -> Response {
message: message.into(),
})
}

#[cfg(test)]
mod tests {
use std::{
net::{IpAddr, Ipv4Addr, SocketAddr},
sync::Arc,
};

use crate::{protocol::utils::get_connection_id, tracker::tracker::TorrentTracker, udp::handle_connect, Configuration};
use aquatic_udp_protocol::{ConnectRequest, ConnectResponse, Response, TransactionId};

fn initialized_tracker() -> Arc<TorrentTracker> {
let config = Arc::new(Configuration::default());
Arc::new(TorrentTracker::new(config).unwrap())
}

fn sample_remote_addr() -> SocketAddr {
SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080)
}

fn connect_request() -> ConnectRequest {
ConnectRequest {
transaction_id: TransactionId(0i32),
}
}

#[tokio::test]
async fn a_connect_response_should_contain_the_same_transaction_id_as_the_connect_request() {
let request = ConnectRequest {
transaction_id: TransactionId(0i32),
};

let response = handle_connect(sample_remote_addr(), &request, initialized_tracker())
.await
.unwrap();

assert_eq!(
response,
Response::Connect(ConnectResponse {
connection_id: get_connection_id(&sample_remote_addr()),
transaction_id: request.transaction_id
})
);
}

#[tokio::test]
async fn a_connect_response_should_generate_a_new_connection_id() {
let request = ConnectRequest {
transaction_id: TransactionId(0i32),
};

let response = handle_connect(sample_remote_addr(), &request, initialized_tracker())
.await
.unwrap();

assert_eq!(
response,
Response::Connect(ConnectResponse {
connection_id: get_connection_id(&sample_remote_addr()),
transaction_id: request.transaction_id
})
);
}
}

0 comments on commit beb2570

Please sign in to comment.