@@ -2,8 +2,6 @@ use derive_more::Display;
22use functora_tagged:: {
33 InfallibleInto , ParseError , Refine , Tagged ,
44} ;
5- #[ cfg( feature = "serde" ) ]
6- use serde:: { Deserialize , Serialize } ;
75use std:: collections:: hash_map:: DefaultHasher ;
86use std:: convert:: Infallible ;
97use std:: error:: Error ;
@@ -225,65 +223,74 @@ fn test_tagged_deref() {
225223}
226224
227225#[ cfg( feature = "serde" ) ]
228- #[ test]
229- fn test_serde_user_id_roundtrip ( ) {
230- #[ derive( Serialize , Deserialize , PartialEq , Debug ) ]
231- struct Wrapper {
232- user_id : UserId ,
226+ mod serde_tests {
227+ use super :: * ;
228+ use serde:: { Deserialize , Serialize } ;
229+
230+ #[ test]
231+ fn test_serde_user_id_roundtrip ( ) {
232+ #[ derive(
233+ Serialize , Deserialize , PartialEq , Debug ,
234+ ) ]
235+ struct Wrapper {
236+ user_id : UserId ,
237+ }
238+ let original = Wrapper {
239+ user_id : "user_456" . parse ( ) . unwrap ( ) ,
240+ } ;
241+ let toml = toml:: to_string ( & original) . unwrap ( ) ;
242+ let deserialized: Wrapper =
243+ toml:: from_str ( & toml) . unwrap ( ) ;
244+ assert_eq ! ( original, deserialized) ;
245+ assert_eq ! (
246+ deserialized. user_id. rep( ) . rep( ) ,
247+ "user_456"
248+ ) ;
233249 }
234- let original = Wrapper {
235- user_id : "user_456" . parse ( ) . unwrap ( ) ,
236- } ;
237- let toml = toml:: to_string ( & original) . unwrap ( ) ;
238- let deserialized: Wrapper =
239- toml:: from_str ( & toml) . unwrap ( ) ;
240- assert_eq ! ( original, deserialized) ;
241- assert_eq ! (
242- deserialized. user_id. rep( ) . rep( ) ,
243- "user_456"
244- ) ;
245- }
246250
247- #[ cfg( feature = "serde" ) ]
248- #[ test]
249- fn test_serde_user_id_invalid_refine ( ) {
250- #[ derive( Deserialize , Debug ) ]
251- struct Wrapper {
252- user_id : UserId ,
251+ #[ test]
252+ fn test_serde_user_id_invalid_refine ( ) {
253+ #[ derive( Deserialize , Debug ) ]
254+ struct Wrapper {
255+ user_id : UserId ,
256+ }
257+ let toml = r#"user_id = "bad""# ;
258+ let err =
259+ toml:: from_str :: < Wrapper > ( toml) . unwrap_err ( ) ;
260+ assert ! (
261+ err. to_string( ) . contains( "UserIdError" ) ,
262+ "Unexpected failure: {err}"
263+ ) ;
264+ let toml = r#"user_id = "user_123""# ;
265+ let wrapper: Wrapper =
266+ toml:: from_str ( toml) . unwrap ( ) ;
267+ assert_eq ! ( wrapper. user_id. rep( ) . rep( ) , "user_123" ) ;
253268 }
254- let toml = r#"user_id = "bad""# ;
255- let err = toml:: from_str :: < Wrapper > ( toml) . unwrap_err ( ) ;
256- assert ! (
257- err. to_string( ) . contains( "UserIdError" ) ,
258- "Unexpected failure: {err}"
259- ) ;
260- let toml = r#"user_id = "user_123""# ;
261- let wrapper: Wrapper = toml:: from_str ( toml) . unwrap ( ) ;
262- assert_eq ! ( wrapper. user_id. rep( ) . rep( ) , "user_123" ) ;
263- }
264269
265- #[ cfg( feature = "serde" ) ]
266- #[ test]
267- fn test_serde_email_roundtrip ( ) {
268- #[ derive( Serialize , Deserialize , PartialEq , Debug ) ]
269- struct Wrapper {
270- email : Email ,
270+ #[ test]
271+ fn test_serde_email_roundtrip ( ) {
272+ #[ derive(
273+ Serialize , Deserialize , PartialEq , Debug ,
274+ ) ]
275+ struct Wrapper {
276+ email : Email ,
277+ }
278+ let original = Wrapper {
279+ email : "[email protected] " . parse ( ) . unwrap ( ) , 280+ } ;
281+ let toml = toml:: to_string ( & original) . unwrap ( ) ;
282+ let deserialized: Wrapper =
283+ toml:: from_str ( & toml) . unwrap ( ) ;
284+ assert_eq ! ( original, deserialized) ;
285+ assert_eq ! (
286+ deserialized. email. rep( ) . rep( ) ,
287+ 288+ ) ;
271289 }
272- let original = Wrapper {
273- email : "[email protected] " . parse ( ) . unwrap ( ) , 274- } ;
275- let toml = toml:: to_string ( & original) . unwrap ( ) ;
276- let deserialized: Wrapper =
277- toml:: from_str ( & toml) . unwrap ( ) ;
278- assert_eq ! ( original, deserialized) ;
279- assert_eq ! (
280- deserialized. email. rep( ) . rep( ) ,
281- 282- ) ;
283290}
284291
285292#[ cfg( feature = "diesel" ) ]
286- mod diesel_tests {
293+ mod diesel_integration_tests {
287294 use super :: * ;
288295 use diesel:: insert_into;
289296 use diesel:: prelude:: * ;
0 commit comments