forked from lavina/lavina
				
			test for server response
This commit is contained in:
		
							parent
							
								
									ed83436501
								
							
						
					
					
						commit
						b7d695519e
					
				|  | @ -355,6 +355,7 @@ fn server_message_body(input: &str) -> IResult<&str, ServerMessageBody> { | |||
|         server_message_body_notice, | ||||
|         server_message_body_ping, | ||||
|         server_message_body_pong, | ||||
|         server_message_body_cap, | ||||
|     ))(input) | ||||
| } | ||||
| 
 | ||||
|  | @ -380,12 +381,7 @@ fn server_message_body_ping(input: &str) -> IResult<&str, ServerMessageBody> { | |||
|     let (input, _) = tag("PING ")(input)?; | ||||
|     let (input, token) = token(input)?; | ||||
| 
 | ||||
|     Ok(( | ||||
|         input, | ||||
|         ServerMessageBody::Ping { | ||||
|             token: token.into(), | ||||
|         }, | ||||
|     )) | ||||
|     Ok((input, ServerMessageBody::Ping { token: token.into() })) | ||||
| } | ||||
| 
 | ||||
| fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> { | ||||
|  | @ -403,6 +399,21 @@ fn server_message_body_pong(input: &str) -> IResult<&str, ServerMessageBody> { | |||
|     )) | ||||
| } | ||||
| 
 | ||||
| fn server_message_body_cap(input: &str) -> IResult<&str, ServerMessageBody> { | ||||
|     let (input, _) = tag("CAP ")(input)?; | ||||
|     let (input, from) = receiver(input)?; | ||||
|     let (input, _) = tag(" LS :")(input)?; | ||||
|     let (input, token) = token(input)?; | ||||
| 
 | ||||
|     Ok(( | ||||
|         input, | ||||
|         ServerMessageBody::Cap { | ||||
|             target: from.into(), | ||||
|             subcmd: CapSubBody::Ls(token.into()), | ||||
|         }, | ||||
|     )) | ||||
| } | ||||
| 
 | ||||
| #[cfg(test)] | ||||
| mod test { | ||||
|     use assert_matches::*; | ||||
|  | @ -427,9 +438,7 @@ mod test { | |||
|         assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result)); | ||||
| 
 | ||||
|         let mut bytes = vec![]; | ||||
|         sync_future(expected.write_async(&mut bytes)) | ||||
|             .unwrap() | ||||
|             .unwrap(); | ||||
|         sync_future(expected.write_async(&mut bytes)).unwrap().unwrap(); | ||||
|         assert_eq!(bytes, input.as_bytes()); | ||||
|     } | ||||
| 
 | ||||
|  | @ -449,9 +458,27 @@ mod test { | |||
|         assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result)); | ||||
| 
 | ||||
|         let mut bytes = vec![]; | ||||
|         sync_future(expected.write_async(&mut bytes)) | ||||
|             .unwrap() | ||||
|             .unwrap(); | ||||
|         sync_future(expected.write_async(&mut bytes)).unwrap().unwrap(); | ||||
|         assert_eq!(bytes, input.as_bytes()); | ||||
|     } | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_server_message_cap_ls() { | ||||
|         let input = "CAP * LS :sasl\r\n"; | ||||
|         let expected = ServerMessage { | ||||
|             tags: vec![], | ||||
|             sender: None, | ||||
|             body: ServerMessageBody::Cap { | ||||
|                 target: "*".into(), | ||||
|                 subcmd: CapSubBody::Ls("sasl".into()), | ||||
|             }, | ||||
|         }; | ||||
| 
 | ||||
|         let result = server_message(input); | ||||
|         assert_matches!(result, Ok((_, result)) => assert_eq!(expected, result)); | ||||
| 
 | ||||
|         let mut bytes = vec![]; | ||||
|         sync_future(expected.write_async(&mut bytes)).unwrap().unwrap(); | ||||
|         assert_eq!(bytes, input.as_bytes()); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue