Fix tests after refactoring URIRef (#116)
Signed-off-by: Jens Reimann <jreimann@redhat.com>
This commit is contained in:
		
							parent
							
								
									62ca1cd7da
								
							
						
					
					
						commit
						dfe2bcce13
					
				|  | @ -144,12 +144,10 @@ mod private { | |||
| mod tests { | ||||
|     use super::*; | ||||
|     use actix_web::test; | ||||
|     use url::Url; | ||||
| 
 | ||||
|     use chrono::Utc; | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use serde_json::json; | ||||
|     use std::str::FromStr; | ||||
| 
 | ||||
|     #[actix_rt::test] | ||||
|     async fn test_request() { | ||||
|  | @ -186,7 +184,7 @@ mod tests { | |||
|         let expected = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             //TODO this is required now because the message deserializer implictly set default values
 | ||||
|             // As soon as this defaulting doesn't happen anymore, we can remove it (Issues #40/#41)
 | ||||
|             .time(time) | ||||
|  |  | |||
|  | @ -107,21 +107,19 @@ mod private { | |||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::*; | ||||
|     use url::Url; | ||||
| 
 | ||||
|     use actix_web::http::StatusCode; | ||||
|     use actix_web::test; | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use futures::TryStreamExt; | ||||
|     use serde_json::json; | ||||
|     use std::str::FromStr; | ||||
| 
 | ||||
|     #[actix_rt::test] | ||||
|     async fn test_response() { | ||||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost/").unwrap()) | ||||
|             .source("http://localhost/") | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|             .unwrap(); | ||||
|  | @ -164,7 +162,7 @@ mod tests { | |||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .data("application/json", j.clone()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  | @ -193,7 +191,7 @@ mod tests { | |||
|         ); | ||||
|         assert_eq!( | ||||
|             resp.headers().get("ce-source").unwrap().to_str().unwrap(), | ||||
|             "http://localhost/" | ||||
|             "http://localhost" | ||||
|         ); | ||||
|         assert_eq!( | ||||
|             resp.headers() | ||||
|  |  | |||
|  | @ -95,7 +95,6 @@ mod tests { | |||
|     use cloudevents::message::StructuredDeserializer; | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use serde_json::json; | ||||
|     use url::Url; | ||||
| 
 | ||||
|     #[tokio::test] | ||||
|     async fn test_request() { | ||||
|  | @ -112,7 +111,7 @@ mod tests { | |||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost/").unwrap()) | ||||
|             .source("http://localhost/") | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|             .unwrap(); | ||||
|  | @ -147,7 +146,7 @@ mod tests { | |||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost/") | ||||
|             .data("application/json", j.clone()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  | @ -173,7 +172,7 @@ mod tests { | |||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .data("application/json", j.clone()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  |  | |||
|  | @ -139,8 +139,6 @@ mod tests { | |||
|     use chrono::Utc; | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use serde_json::json; | ||||
|     use std::str::FromStr; | ||||
|     use url::Url; | ||||
| 
 | ||||
|     #[tokio::test] | ||||
|     async fn test_response() { | ||||
|  | @ -162,7 +160,7 @@ mod tests { | |||
|             //TODO this is required now because the message deserializer implictly set default values
 | ||||
|             // As soon as this defaulting doesn't happen anymore, we can remove it (Issues #40/#41)
 | ||||
|             .time(time) | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|             .unwrap(); | ||||
|  | @ -204,7 +202,7 @@ mod tests { | |||
|             //TODO this is required now because the message deserializer implictly set default values
 | ||||
|             // As soon as this defaulting doesn't happen anymore, we can remove it (Issues #40/#41)
 | ||||
|             .time(time) | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost/") | ||||
|             .data("application/json", j.to_string().into_bytes()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  | @ -234,7 +232,7 @@ mod tests { | |||
|             //TODO this is required now because the message deserializer implictly set default values
 | ||||
|             // As soon as this defaulting doesn't happen anymore, we can remove it (Issues #40/#41)
 | ||||
|             .time(time) | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .data("application/json", j.clone()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  |  | |||
|  | @ -42,13 +42,11 @@ async fn create_event(headers: HeaderMap, body: bytes::Bytes) -> Result<Event, R | |||
| #[cfg(test)] | ||||
| mod tests { | ||||
|     use super::to_event; | ||||
|     use url::Url; | ||||
|     use warp::test; | ||||
| 
 | ||||
|     use chrono::Utc; | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use serde_json::json; | ||||
|     use std::str::FromStr; | ||||
| 
 | ||||
|     #[tokio::test] | ||||
|     async fn test_request() { | ||||
|  | @ -110,7 +108,7 @@ mod tests { | |||
|         let expected = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .time(time) | ||||
|             .data("application/json", j.to_string().into_bytes()) | ||||
|             .extension("someint", "10") | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ | |||
| //!     let routes = warp::any().map(|| {
 | ||||
| //!         let event = EventBuilderV10::new()
 | ||||
| //!             .id("1")
 | ||||
| //!             .source(url::Url::parse("url://example_response/").unwrap())
 | ||||
| //!             .source("url://example_response/")
 | ||||
| //!             .ty("example.ce")
 | ||||
| //!             .data(
 | ||||
| //!                 mime::APPLICATION_JSON.to_string(),
 | ||||
|  |  | |||
|  | @ -31,15 +31,13 @@ mod tests { | |||
| 
 | ||||
|     use cloudevents::{EventBuilder, EventBuilderV10}; | ||||
|     use serde_json::json; | ||||
|     use std::str::FromStr; | ||||
|     use url::Url; | ||||
| 
 | ||||
|     #[test] | ||||
|     fn test_response() { | ||||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost/").unwrap()) | ||||
|             .source("http://localhost/") | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|             .unwrap(); | ||||
|  | @ -79,7 +77,7 @@ mod tests { | |||
|         let input = EventBuilderV10::new() | ||||
|             .id("0001") | ||||
|             .ty("example.test") | ||||
|             .source(Url::from_str("http://localhost").unwrap()) | ||||
|             .source("http://localhost") | ||||
|             .data("application/json", j.clone()) | ||||
|             .extension("someint", "10") | ||||
|             .build() | ||||
|  | @ -105,7 +103,7 @@ mod tests { | |||
|         ); | ||||
|         assert_eq!( | ||||
|             resp.headers().get("ce-source").unwrap().to_str().unwrap(), | ||||
|             "http://localhost/" | ||||
|             "http://localhost" | ||||
|         ); | ||||
|         assert_eq!( | ||||
|             resp.headers() | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ pub enum Error { | |||
|         source: chrono::ParseError, | ||||
|     }, | ||||
|     #[snafu(display(
 | ||||
|         "Error while setting attribute '{}' with uri/uriref type: {}", | ||||
|         "Error while setting attribute '{}' with uri type: {}", | ||||
|         attribute_name, | ||||
|         source | ||||
|     ))] | ||||
|  | @ -52,4 +52,9 @@ pub enum Error { | |||
|         attribute_name: &'static str, | ||||
|         source: url::ParseError, | ||||
|     }, | ||||
|     #[snafu(display(
 | ||||
|         "Invalid value setting attribute '{}' with uriref type", | ||||
|         attribute_name, | ||||
|     ))] | ||||
|     InvalidUriRefError { attribute_name: &'static str }, | ||||
| } | ||||
|  |  | |||
|  | @ -251,7 +251,7 @@ mod tests { | |||
|         assert_eq!( | ||||
|             ( | ||||
|                 "source", | ||||
|                 AttributeValue::URIRef(&Url::parse("https://example.net").unwrap()) | ||||
|                 AttributeValue::URIRef(&"https://example.net".to_string()) | ||||
|             ), | ||||
|             b.next().unwrap() | ||||
|         ); | ||||
|  |  | |||
|  | @ -31,7 +31,14 @@ impl EventBuilder { | |||
|     } | ||||
| 
 | ||||
|     pub fn source(mut self, source: impl Into<String>) -> Self { | ||||
|         self.source = Some(source.into()); | ||||
|         let source = source.into(); | ||||
|         if source.is_empty() { | ||||
|             self.error = Some(EventBuilderError::InvalidUriRefError { | ||||
|                 attribute_name: "source", | ||||
|             }); | ||||
|         } else { | ||||
|             self.source = Some(source); | ||||
|         } | ||||
|         self | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -228,7 +228,7 @@ mod tests { | |||
|         let a = Attributes { | ||||
|             id: String::from("1"), | ||||
|             ty: String::from("someType"), | ||||
|             source: Url::parse("https://example.net").unwrap(), | ||||
|             source: "https://example.net".into(), | ||||
|             datacontenttype: None, | ||||
|             dataschema: None, | ||||
|             subject: None, | ||||
|  | @ -252,7 +252,7 @@ mod tests { | |||
|         assert_eq!( | ||||
|             ( | ||||
|                 "source", | ||||
|                 AttributeValue::URIRef(&Url::parse("https://example.net").unwrap()) | ||||
|                 AttributeValue::URIRef(&"https://example.net".to_string()) | ||||
|             ), | ||||
|             b.next().unwrap() | ||||
|         ); | ||||
|  |  | |||
|  | @ -31,7 +31,14 @@ impl EventBuilder { | |||
|     } | ||||
| 
 | ||||
|     pub fn source(mut self, source: impl Into<String>) -> Self { | ||||
|         self.source = Some(source.into()); | ||||
|         let source = source.into(); | ||||
|         if source.is_empty() { | ||||
|             self.error = Some(EventBuilderError::InvalidUriRefError { | ||||
|                 attribute_name: "source", | ||||
|             }); | ||||
|         } else { | ||||
|             self.source = Some(source); | ||||
|         } | ||||
|         self | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ use url::Url; | |||
| #[test] | ||||
| fn build_event() { | ||||
|     let id = "aaa"; | ||||
|     let source = Url::parse("http://localhost:8080").unwrap(); | ||||
|     let source = "http://localhost:8080"; | ||||
|     let ty = "bbb"; | ||||
|     let subject = "francesco"; | ||||
|     let time: DateTime<Utc> = Utc::now(); | ||||
|  | @ -52,6 +52,16 @@ fn build_event() { | |||
|     assert_eq!(data, event_data); | ||||
| } | ||||
| 
 | ||||
| #[test] | ||||
| fn source_valid_relative_url() { | ||||
|     let res = EventBuilderV03::new() | ||||
|         .id("id1") | ||||
|         .source("/source") // relative URL
 | ||||
|         .ty("type") | ||||
|         .build(); | ||||
|     assert_match_pattern!(res, Ok(_)); | ||||
| } | ||||
| 
 | ||||
| #[test] | ||||
| fn build_missing_id() { | ||||
|     let res = EventBuilderV03::new() | ||||
|  | @ -70,9 +80,8 @@ fn source_invalid_url() { | |||
|     let res = EventBuilderV03::new().source("").build(); | ||||
|     assert_match_pattern!( | ||||
|         res, | ||||
|         Err(EventBuilderError::ParseUrlError { | ||||
|         Err(EventBuilderError::InvalidUriRefError { | ||||
|             attribute_name: "source", | ||||
|             .. | ||||
|         }) | ||||
|     ); | ||||
| } | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ use url::Url; | |||
| #[test] | ||||
| fn build_event() { | ||||
|     let id = "aaa"; | ||||
|     let source = Url::parse("http://localhost:8080").unwrap(); | ||||
|     let source = "http://localhost:8080"; | ||||
|     let ty = "bbb"; | ||||
|     let subject = "francesco"; | ||||
|     let time: DateTime<Utc> = Utc::now(); | ||||
|  | @ -52,6 +52,16 @@ fn build_event() { | |||
|     assert_eq!(data, event_data); | ||||
| } | ||||
| 
 | ||||
| #[test] | ||||
| fn source_valid_relative_url() { | ||||
|     let res = EventBuilderV10::new() | ||||
|         .id("id1") | ||||
|         .source("/source") // relative URL
 | ||||
|         .ty("type") | ||||
|         .build(); | ||||
|     assert_match_pattern!(res, Ok(_)); | ||||
| } | ||||
| 
 | ||||
| #[test] | ||||
| fn build_missing_id() { | ||||
|     let res = EventBuilderV10::new() | ||||
|  | @ -70,9 +80,8 @@ fn source_invalid_url() { | |||
|     let res = EventBuilderV10::new().source("").build(); | ||||
|     assert_match_pattern!( | ||||
|         res, | ||||
|         Err(EventBuilderError::ParseUrlError { | ||||
|         Err(EventBuilderError::InvalidUriRefError { | ||||
|             attribute_name: "source", | ||||
|             .. | ||||
|         }) | ||||
|     ); | ||||
| } | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ use url::Url; | |||
| pub fn minimal() -> Event { | ||||
|     EventBuilderV03::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .build() | ||||
|         .unwrap() | ||||
|  | @ -29,7 +29,7 @@ pub fn full_no_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV03::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -65,7 +65,7 @@ pub fn full_json_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV03::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -131,7 +131,7 @@ pub fn full_xml_string_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV03::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -150,7 +150,7 @@ pub fn full_xml_binary_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV03::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ use url::Url; | |||
| pub fn minimal() -> Event { | ||||
|     EventBuilderV10::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .build() | ||||
|         .unwrap() | ||||
|  | @ -28,7 +28,7 @@ pub fn full_no_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV10::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -64,7 +64,7 @@ pub fn full_json_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV10::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -129,7 +129,7 @@ pub fn full_xml_string_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV10::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  | @ -148,7 +148,7 @@ pub fn full_xml_binary_data() -> Event { | |||
| 
 | ||||
|     EventBuilderV10::new() | ||||
|         .id(id()) | ||||
|         .source(Url::parse(source().as_ref()).unwrap()) | ||||
|         .source(source()) | ||||
|         .ty(ty()) | ||||
|         .subject(subject()) | ||||
|         .time(time()) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue