File tree Expand file tree Collapse file tree 3 files changed +60
-1
lines changed Expand file tree Collapse file tree 3 files changed +60
-1
lines changed Original file line number Diff line number Diff line change @@ -18,3 +18,4 @@ serde = { version = "1.0", features = ["derive"] }
1818simple_logger = " 2.1"
1919docmatic = " 0.1"
2020rstest = " 0.12"
21+ indoc = " 2.0.6"
Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ impl<W> Serializer<W>
8787where
8888 W : Write ,
8989{
90- fn new_from_writer ( writer : EventWriter < W > ) -> Self {
90+ pub fn new_from_writer ( writer : EventWriter < W > ) -> Self {
9191 Self {
9292 writer,
9393 root : true ,
Original file line number Diff line number Diff line change 1+ pub use rstest:: { fixture, rstest} ;
2+ use simple_logger:: SimpleLogger ;
3+
4+ #[ fixture]
5+ fn logger ( ) {
6+ let _ = SimpleLogger :: new ( ) . init ( ) ;
7+ }
8+
9+ mod given_custom_event_writer {
10+ use super :: * ;
11+ use indoc:: indoc;
12+ use serde:: Serialize ;
13+ use xml:: EmitterConfig ;
14+
15+ #[ derive( Debug , Serialize ) ]
16+ struct Document {
17+ content : Content ,
18+ }
19+
20+ #[ derive( Debug , Serialize ) ]
21+ struct Content {
22+ text : String ,
23+ }
24+
25+ #[ fixture]
26+ fn document ( ) -> Document {
27+ Document {
28+ content : Content {
29+ text : "content text" . into ( ) ,
30+ } ,
31+ }
32+ }
33+
34+ #[ rstest]
35+ fn should_accept_custom_event_writer ( _logger : ( ) , document : Document ) {
36+ let mut output = Vec :: new ( ) ;
37+ let writer = EmitterConfig :: new ( )
38+ . perform_indent ( true )
39+ . create_writer ( & mut output) ;
40+ let mut s = serde_xml_rs:: ser:: Serializer :: new_from_writer ( writer) ;
41+
42+ document. serialize ( & mut s) . unwrap ( ) ;
43+ let actual = String :: from_utf8 ( output) . unwrap ( ) ;
44+
45+ assert_eq ! (
46+ actual,
47+ indoc!(
48+ r#"
49+ <?xml version="1.0" encoding="UTF-8"?>
50+ <Document>
51+ <content>
52+ <text>content text</text>
53+ </content>
54+ </Document>"#
55+ )
56+ ) ;
57+ }
58+ }
You can’t perform that action at this time.
0 commit comments