From 68d169fd405d1a6cd8090134c230600c3ef63043 Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Sun, 20 Oct 2019 16:42:56 +0200
Subject: [PATCH] [tests] network-docs:url: tests shouldn't depend on addrs
 order

---
 Cargo.lock                            |  1 +
 lib/dunp/network-documents/Cargo.toml |  1 +
 lib/dunp/network-documents/src/url.rs | 49 +++++++++++++++------------
 3 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index aac36f52..aa153d5d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -746,6 +746,7 @@ dependencies = [
  "dubp-currency-params 0.2.0",
  "dubp-user-docs 0.14.0",
  "dup-crypto 0.7.0",
+ "durs-common-tests-tools 0.1.0",
  "durs-common-tools 0.2.0",
  "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/lib/dunp/network-documents/Cargo.toml b/lib/dunp/network-documents/Cargo.toml
index 788d8bdc..cb9a8d9a 100644
--- a/lib/dunp/network-documents/Cargo.toml
+++ b/lib/dunp/network-documents/Cargo.toml
@@ -17,6 +17,7 @@ dubp-common-doc = { path = "../../dubp/common-doc" } #, version = "0.1.0" }
 dubp-currency-params = { path = "../../dubp/currency-params" }
 dubp-user-docs= { path = "../../dubp/user-docs" }
 dup-crypto = { path = "../../crypto" }
+durs-common-tests-tools = { path = "../../tests-tools/common-tests-tools" }
 durs-common-tools = { path = "../../tools/common-tools" }
 failure = "0.1.5"
 hex = "0.3.*"
diff --git a/lib/dunp/network-documents/src/url.rs b/lib/dunp/network-documents/src/url.rs
index 6951da6e..a77de3ba 100644
--- a/lib/dunp/network-documents/src/url.rs
+++ b/lib/dunp/network-documents/src/url.rs
@@ -228,15 +228,22 @@ mod tests {
 
         assert_eq!(Ok(expected_url.clone()), Url::from_str("g1.duniter.org"));
 
-        assert_eq!(
-            vec![
+        /*use std::net::ToSocketAddrs;
+        let addrs: Vec<SocketAddr> = ("g1.duniter.org", 20901u16)
+            .to_socket_addrs()
+            .expect("fail to resolve g1.duniter.org")
+            .collect();
+        println!("{:?}", addrs);*/
+
+        assert!(durs_common_tests_tools::collections::slice_same_elems(
+            &vec![
                 SocketAddr::V4(SocketAddrV4::new(ip4(), 80)),
-                SocketAddr::V6(SocketAddrV6::new(ip6(), 80, 0, 0))
+                SocketAddr::V6(SocketAddrV6::new(ip6(), 80, 0, 0)),
             ],
-            expected_url
+            &expected_url
                 .to_listenable_addr("ws")
-                .expect("Fail to get to_listenable_addr addr")
-        );
+                .expect("Fail to get to_listenable_addr addr"),
+        ));
 
         Ok(())
     }
@@ -245,14 +252,14 @@ mod tests {
     fn parse_url_with_scheme_and_host() -> Result<(), url::ParseError> {
         let url = Url::Url(url::Url::parse("wss://g1.duniter.org")?);
 
-        assert_eq!(
-            vec![
+        assert!(durs_common_tests_tools::collections::slice_same_elems(
+            &vec![
+                SocketAddr::V6(SocketAddrV6::new(ip6(), 443, 0, 0)),
                 SocketAddr::V4(SocketAddrV4::new(ip4(), 443)),
-                SocketAddr::V6(SocketAddrV6::new(ip6(), 443, 0, 0))
             ],
-            url.to_listenable_addr("ws")
+            &url.to_listenable_addr("ws")
                 .expect("Fail to get to_listenable_addr addr")
-        );
+        ));
 
         Ok(())
     }
@@ -272,15 +279,15 @@ mod tests {
             Url::from_str("g1.duniter.org:20901")
         );
 
-        assert_eq!(
-            vec![
+        assert!(durs_common_tests_tools::collections::slice_same_elems(
+            &vec![
+                SocketAddr::V6(SocketAddrV6::new(ip6(), 20901, 0, 0)),
                 SocketAddr::V4(SocketAddrV4::new(ip4(), 20901)),
-                SocketAddr::V6(SocketAddrV6::new(ip6(), 20901, 0, 0))
             ],
-            expected_url
+            &expected_url
                 .to_listenable_addr("ws")
                 .expect("Fail to get to_listenable_addr addr")
-        );
+        ));
 
         Ok(())
     }
@@ -289,14 +296,14 @@ mod tests {
     fn parse_url_with_scheme_and_host_and_port() -> Result<(), url::ParseError> {
         let url = Url::Url(url::Url::parse("ws://g1.duniter.org:20901")?);
 
-        assert_eq!(
-            vec![
+        assert!(durs_common_tests_tools::collections::slice_same_elems(
+            &vec![
+                SocketAddr::V6(SocketAddrV6::new(ip6(), 20901, 0, 0)),
                 SocketAddr::V4(SocketAddrV4::new(ip4(), 20901)),
-                SocketAddr::V6(SocketAddrV6::new(ip6(), 20901, 0, 0))
             ],
-            url.to_listenable_addr("ws")
+            &url.to_listenable_addr("ws")
                 .expect("Fail to get to_listenable_addr addr")
-        );
+        ));
 
         Ok(())
     }
-- 
GitLab