aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/tests/test-structural-renderer/tests/integration.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_core/tests/test-structural-renderer/tests/integration.rs')
-rw-r--r--mingling_core/tests/test-structural-renderer/tests/integration.rs75
1 files changed, 75 insertions, 0 deletions
diff --git a/mingling_core/tests/test-structural-renderer/tests/integration.rs b/mingling_core/tests/test-structural-renderer/tests/integration.rs
new file mode 100644
index 0000000..3c3c6db
--- /dev/null
+++ b/mingling_core/tests/test-structural-renderer/tests/integration.rs
@@ -0,0 +1,75 @@
+use mingling::{StructuralRenderer, StructuralRendererSetting, RenderResult, StructuralData};
+use serde::Serialize;
+
+#[derive(Debug, Clone, PartialEq, Serialize, StructuralData)]
+struct TestData {
+ name: String,
+ value: i32,
+}
+
+fn test_data() -> TestData {
+ TestData {
+ name: "test".into(),
+ value: 42,
+ }
+}
+
+#[test]
+fn test_render_disable() {
+ let mut r = RenderResult::default();
+ let result = StructuralRenderer::render(&test_data(), &StructuralRendererSetting::Disable, &mut r);
+ assert!(result.is_ok());
+ assert!(r.is_empty());
+}
+
+#[test]
+fn test_render_json() {
+ let mut r = RenderResult::default();
+ let result = StructuralRenderer::render(&test_data(), &StructuralRendererSetting::Json, &mut r);
+ assert!(result.is_ok());
+ assert!(!r.is_empty());
+ let output: String = r.into();
+ assert!(output.contains("\"name\""));
+ assert!(output.contains("\"test\""));
+ assert!(output.contains("\"value\""));
+ assert!(output.contains("42"));
+}
+
+#[test]
+fn test_render_yaml() {
+ let mut r = RenderResult::default();
+ let result = StructuralRenderer::render(&test_data(), &StructuralRendererSetting::Yaml, &mut r);
+ assert!(result.is_ok());
+ assert!(!r.is_empty());
+ let output: String = r.into();
+ assert!(output.contains("name:"));
+ assert!(output.contains("test"));
+ assert!(output.contains("value:"));
+ assert!(output.contains("42"));
+}
+
+#[test]
+fn test_render_toml() {
+ let mut r = RenderResult::default();
+ let result = StructuralRenderer::render(&test_data(), &StructuralRendererSetting::Toml, &mut r);
+ assert!(result.is_ok());
+ assert!(!r.is_empty());
+ let output: String = r.into();
+ assert!(output.contains("name = "));
+ assert!(output.contains("test"));
+ assert!(output.contains("value = "));
+ assert!(output.contains("42"));
+}
+
+#[test]
+fn test_render_ron() {
+ let mut r = RenderResult::default();
+ let result = StructuralRenderer::render(&test_data(), &StructuralRendererSetting::Ron, &mut r);
+ assert!(result.is_ok());
+ assert!(!r.is_empty());
+ let output: String = r.into();
+ assert!(output.contains("name:"));
+ assert!(output.contains("\"test\""));
+ assert!(output.contains("value:"));
+ assert!(output.contains("42"));
+}