@@ -88,7 +88,6 @@ mod success {
8888 mod basic {
8989 use super :: * ;
9090 use crate :: vec_of_strings;
91- use serde_json:: Value ;
9291 use std:: io:: { Cursor , Seek , SeekFrom } ;
9392
9493 fn expected_values ( ) -> Vec < Entry > {
@@ -166,17 +165,35 @@ mod success {
166165
167166 // Create fake "file"
168167 let mut buffer = Cursor :: new ( Vec :: new ( ) ) ;
169- let result = write ( & mut buffer, input. into_iter ( ) ) ;
168+ let result = write_with_arguments ( & mut buffer, input. into_iter ( ) ) ;
170169 assert ! ( result. is_ok( ) ) ;
171170
172171 // Use the fake "file" as input
173172 buffer. seek ( SeekFrom :: Start ( 0 ) ) . unwrap ( ) ;
174- let content: Value = serde_json:: from_reader ( & mut buffer) ?;
173+ let content: serde_json :: Value = serde_json:: from_reader ( & mut buffer) ?;
175174
176175 assert_eq ! ( expected_with_array_syntax( ) , content) ;
177176
178177 Ok ( ( ) )
179178 }
179+
180+ #[ test]
181+ fn save_with_string_command_syntax ( ) -> Result < ( ) , Error > {
182+ let input = expected_values ( ) ;
183+
184+ // Create fake "file"
185+ let mut buffer = Cursor :: new ( Vec :: new ( ) ) ;
186+ let result = write_with_command ( & mut buffer, input. into_iter ( ) ) ;
187+ assert ! ( result. is_ok( ) ) ;
188+
189+ // Use the fake "file" as input
190+ buffer. seek ( SeekFrom :: Start ( 0 ) ) . unwrap ( ) ;
191+ let content: serde_json:: Value = serde_json:: from_reader ( & mut buffer) ?;
192+
193+ assert_eq ! ( expected_with_string_syntax( ) , content) ;
194+
195+ Ok ( ( ) )
196+ }
180197 }
181198
182199 mod quoted {
@@ -233,6 +250,21 @@ mod success {
233250 ] )
234251 }
235252
253+ fn expected_with_string_syntax ( ) -> serde_json:: Value {
254+ json ! ( [
255+ {
256+ "directory" : "/home/user" ,
257+ "file" : "./file_a.c" ,
258+ "command" : r#"cc -c -D 'name=\"me\"' ./file_a.c -o ./file_a.o"#
259+ } ,
260+ {
261+ "directory" : "/home/user" ,
262+ "file" : "./file_b.c" ,
263+ "command" : r#"cc -c -D 'name="me"' ./file_b.c -o ./file_b.o"#
264+ }
265+ ] )
266+ }
267+
236268 #[ test]
237269 fn load_content_with_array_command_syntax ( ) {
238270 let content = expected_with_array_syntax ( ) . to_string ( ) ;
@@ -249,7 +281,7 @@ mod success {
249281
250282 // Create fake "file"
251283 let mut buffer = Cursor :: new ( Vec :: new ( ) ) ;
252- let result = write ( & mut buffer, input. into_iter ( ) ) ;
284+ let result = write_with_arguments ( & mut buffer, input. into_iter ( ) ) ;
253285 assert ! ( result. is_ok( ) ) ;
254286
255287 // Use the fake "file" as input
@@ -260,5 +292,23 @@ mod success {
260292
261293 Ok ( ( ) )
262294 }
295+
296+ #[ test]
297+ fn save_with_string_command_syntax ( ) -> Result < ( ) , Error > {
298+ let input = expected_values ( ) ;
299+
300+ // Create fake "file"
301+ let mut buffer = Cursor :: new ( Vec :: new ( ) ) ;
302+ let result = write_with_command ( & mut buffer, input. into_iter ( ) ) ;
303+ assert ! ( result. is_ok( ) ) ;
304+
305+ // Use the fake "file" as input
306+ buffer. seek ( SeekFrom :: Start ( 0 ) ) . unwrap ( ) ;
307+ let content: Value = serde_json:: from_reader ( & mut buffer) ?;
308+
309+ assert_eq ! ( expected_with_string_syntax( ) , content) ;
310+
311+ Ok ( ( ) )
312+ }
263313 }
264314}
0 commit comments