mikrotik_tests.rs 1008 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //! Parse tests for the `[mikrotik]` config section.
  2. use super::Config;
  3. #[test]
  4. fn test_config_deserialize_mikrotik() {
  5. let c: Config = toml::from_str(
  6. r#"
  7. [mikrotik]
  8. [[mikrotik.devices]]
  9. name = "router.lab"
  10. address = "192.168.88.1"
  11. username = "admin"
  12. password = "secret"
  13. [[mikrotik.devices]]
  14. name = "router.edge"
  15. address = "10.0.0.1"
  16. username = "u"
  17. password = "p"
  18. api_port = 8729
  19. on_entity = "switch.edge_power"
  20. "#,
  21. )
  22. .unwrap();
  23. let mk = c.mikrotik.as_ref().expect("[mikrotik] parsed");
  24. assert_eq!(mk.devices.len(), 2);
  25. assert_eq!(mk.devices[0].name, "router.lab");
  26. assert_eq!(mk.devices[0].api_port, 8728, "default port");
  27. assert_eq!(mk.devices[0].on_entity, None);
  28. assert_eq!(mk.devices[1].api_port, 8729);
  29. assert_eq!(
  30. mk.devices[1].on_entity.as_deref(),
  31. Some("switch.edge_power")
  32. );
  33. }
  34. #[test]
  35. fn test_config_mikrotik_absent() {
  36. let c: Config = toml::from_str("ssh_user = \"a\"\n").unwrap();
  37. assert!(c.mikrotik.is_none());
  38. }