()
| 95 | |
| 96 | #[test] |
| 97 | fn topology_save_load_roundtrip() { |
| 98 | let (_dir, catalog) = temp_catalog(); |
| 99 | |
| 100 | let mut topo = ClusterTopology::new(); |
| 101 | topo.add_node(NodeInfo::new( |
| 102 | 1, |
| 103 | "10.0.0.1:9400".parse().unwrap(), |
| 104 | NodeState::Active, |
| 105 | )); |
| 106 | topo.add_node(NodeInfo::new( |
| 107 | 2, |
| 108 | "10.0.0.2:9400".parse().unwrap(), |
| 109 | NodeState::Active, |
| 110 | )); |
| 111 | topo.add_node(NodeInfo::new( |
| 112 | 3, |
| 113 | "10.0.0.3:9400".parse().unwrap(), |
| 114 | NodeState::Joining, |
| 115 | )); |
| 116 | |
| 117 | catalog.save_topology(&topo).unwrap(); |
| 118 | let loaded = catalog.load_topology().unwrap().unwrap(); |
| 119 | |
| 120 | assert_eq!(loaded.node_count(), 3); |
| 121 | assert_eq!(loaded.version(), 3); |
| 122 | assert_eq!(loaded.active_nodes().len(), 2); |
| 123 | assert_eq!(loaded.get_node(1).unwrap().addr, "10.0.0.1:9400"); |
| 124 | } |
| 125 | |
| 126 | #[test] |
| 127 | fn routing_save_load_roundtrip() { |
nothing calls this directly
no test coverage detected