use ig_client::presentation::chart::{ChartData, ChartFields};
use lightstreamer_rs::subscription::ItemUpdate;
use std::collections::HashMap;
#[test]
fn test_chart_fields_default() {
let fields = ChartFields::default();
let _json = serde_json::to_string(&fields).unwrap();
}
#[test]
fn test_chart_data_default() {
let chart = ChartData::default();
let _display = format!("{}", chart);
}
#[test]
fn test_chart_data_from_item_update_empty() {
let item_update = ItemUpdate {
item_name: Some("CHART:TEST".to_string()),
item_pos: 1,
is_snapshot: false,
fields: HashMap::new(),
changed_fields: HashMap::new(),
};
let result = ChartData::from_item_update(&item_update);
assert!(result.is_ok());
}
#[test]
fn test_chart_data_from_item_update_with_fields() {
let mut fields = HashMap::new();
fields.insert("BID".to_string(), Some("100.5".to_string()));
fields.insert("OFFER".to_string(), Some("101.0".to_string()));
fields.insert("HIGH".to_string(), Some("105.0".to_string()));
fields.insert("LOW".to_string(), Some("95.0".to_string()));
fields.insert("LTV".to_string(), Some("1000".to_string()));
let item_update = ItemUpdate {
item_name: Some("CHART:TEST".to_string()),
item_pos: 1,
is_snapshot: true,
fields,
changed_fields: HashMap::new(),
};
let result = ChartData::from_item_update(&item_update);
assert!(result.is_ok());
}
#[test]
fn test_chart_data_clone() {
let chart = ChartData::default();
let _cloned = chart.clone();
}
#[test]
fn test_chart_data_serialization() {
let chart = ChartData::default();
let json = serde_json::to_string(&chart).unwrap();
let _deserialized: ChartData = serde_json::from_str(&json).unwrap();
}