panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
Ticket {
}
#[test]
- #[should_panic(expected = "Title cannot be longer than 50 characters")]
+ #[should_panic(expected = "Title cannot be longer than 50 bytes")]
fn title_cannot_be_longer_than_fifty_chars() {
Ticket::new(overly_long_title(), valid_description(), "To-Do".into());
}
#[test]
- #[should_panic(expected = "Description cannot be longer than 500 characters")]
+ #[should_panic(expected = "Description cannot be longer than 500 bytes")]
fn description_cannot_be_longer_than_500_chars() {
Ticket::new(valid_title(), overly_long_description(), "To-Do".into());
}
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
}
#[test]
- #[should_panic(expected = "Title cannot be longer than 50 characters")]
+ #[should_panic(expected = "Title cannot be longer than 50 bytes")]
fn title_cannot_be_longer_than_fifty_chars() {
Ticket::new(valid_title(), valid_description(), "To-Do".into())
.set_title(overly_long_title())
}
#[test]
- #[should_panic(expected = "Description cannot be longer than 500 characters")]
+ #[should_panic(expected = "Description cannot be longer than 500 bytes")]
fn description_cannot_be_longer_than_500_chars() {
Ticket::new(valid_title(), valid_description(), "To-Do".into())
.set_description(overly_long_description())
// TODO: Define a new `Order` type.
// It should keep track of three pieces of information: `product_name`, `quantity`, and `unit_price`.
-// The product name can't be empty and it can't be longer than 300 characters.
+// The product name can't be empty and it can't be longer than 300 bytes.
// The quantity must be strictly greater than zero.
// The unit price is in cents and must be strictly greater than zero.
// Order must include a method named `total` that returns the total price of the order.
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
if status != "To-Do" && status != "In Progress" && status != "Done" {
panic!("Only `To-Do`, `In Progress`, and `Done` statuses are allowed");
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
Ticket {
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
Ticket {
panic!("Title cannot be empty");
}
if title.len() > 50 {
- panic!("Title cannot be longer than 50 characters");
+ panic!("Title cannot be longer than 50 bytes");
}
if description.is_empty() {
panic!("Description cannot be empty");
}
if description.len() > 500 {
- panic!("Description cannot be longer than 500 characters");
+ panic!("Description cannot be longer than 500 bytes");
}
Ticket {
fn title_cannot_be_longer_than_fifty_chars() {
let error =
Ticket::new(overly_long_title(), valid_description(), Status::ToDo).unwrap_err();
- assert_eq!(error, "Title cannot be longer than 50 characters");
+ assert_eq!(error, "Title cannot be longer than 50 bytes");
}
#[test]
fn description_cannot_be_longer_than_500_chars() {
let error =
Ticket::new(valid_title(), overly_long_description(), Status::ToDo).unwrap_err();
- assert_eq!(error, "Description cannot be longer than 500 characters");
+ assert_eq!(error, "Description cannot be longer than 500 bytes");
}
}
return Err("Title cannot be empty".to_string());
}
if title.len() > 50 {
- return Err("Title cannot be longer than 50 characters".to_string());
+ return Err("Title cannot be longer than 50 bytes".to_string());
}
if description.is_empty() {
return Err("Description cannot be empty".to_string());
}
if description.len() > 500 {
- return Err("Description cannot be longer than 500 characters".to_string());
+ return Err("Description cannot be longer than 500 bytes".to_string());
}
Ok(Ticket {
}
#[test]
- #[should_panic(expected = "Title cannot be longer than 50 characters")]
+ #[should_panic(expected = "Title cannot be longer than 50 bytes")]
fn title_cannot_be_longer_than_fifty_chars() {
easy_ticket(overly_long_title(), valid_description(), Status::ToDo);
}
return Err("Title cannot be empty".to_string());
}
if title.len() > 50 {
- return Err("Title cannot be longer than 50 characters".to_string());
+ return Err("Title cannot be longer than 50 bytes".to_string());
}
if description.is_empty() {
return Err("Description cannot be empty".to_string());
}
if description.len() > 500 {
- return Err("Description cannot be longer than 500 characters".to_string());
+ return Err("Description cannot be longer than 500 bytes".to_string());
}
Ok(Ticket {
}
#[test]
- #[should_panic(expected = "Title cannot be longer than 50 characters")]
+ #[should_panic(expected = "Title cannot be longer than 50 bytes")]
fn title_cannot_be_longer_than_fifty_chars() {
easy_ticket(overly_long_title(), valid_description(), Status::ToDo);
}
}
if title.len() > 50 {
return Err(TicketNewError::TitleError(
- "Title cannot be longer than 50 characters".to_string(),
+ "Title cannot be longer than 50 bytes".to_string(),
));
}
if description.is_empty() {
}
if description.len() > 500 {
return Err(TicketNewError::DescriptionError(
- "Description cannot be longer than 500 characters".to_string(),
+ "Description cannot be longer than 500 bytes".to_string(),
));
}
}
#[test]
- #[should_panic(expected = "Title cannot be longer than 50 characters")]
+ #[should_panic(expected = "Title cannot be longer than 50 bytes")]
fn title_cannot_be_longer_than_fifty_chars() {
easy_ticket(overly_long_title(), valid_description(), Status::ToDo);
}
#[test]
fn title_cannot_be_longer_than_fifty_chars() {
let err = Ticket::new(overly_long_title(), valid_description(), Status::ToDo).unwrap_err();
- assert_eq!(err.to_string(), "Title cannot be longer than 50 characters");
+ assert_eq!(err.to_string(), "Title cannot be longer than 50 bytes");
}
#[test]
let err = Ticket::new(valid_title(), overly_long_description(), Status::ToDo).unwrap_err();
assert_eq!(
err.to_string(),
- "Description cannot be longer than 500 characters"
+ "Description cannot be longer than 500 bytes"
);
}
}
pub enum TicketNewError {
#[error("Title cannot be empty")]
TitleCannotBeEmpty,
- #[error("Title cannot be longer than 50 characters")]
+ #[error("Title cannot be longer than 50 bytes")]
TitleTooLong,
#[error("Description cannot be empty")]
DescriptionCannotBeEmpty,
- #[error("Description cannot be longer than 500 characters")]
+ #[error("Description cannot be longer than 500 bytes")]
DescriptionTooLong,
}
// TODO: Implement `TryFrom<String>` and `TryFrom<&str>` for the `TicketDescription` type,
-// enforcing that the description is not empty and is not longer than 500 characters.
+// enforcing that the description is not empty and is not longer than 500 bytes.
// Implement the traits required to make the tests pass too.
pub struct TicketDescription(String);
let err = TicketDescription::try_from(description).unwrap_err();
assert_eq!(
err.to_string(),
- "The description cannot be longer than 500 characters"
+ "The description cannot be longer than 500 bytes"
);
}
"A title that's definitely longer than what should be allowed in a development ticket"
.to_string();
let err = TicketTitle::try_from(title).unwrap_err();
- assert_eq!(
- err.to_string(),
- "The title cannot be longer than 50 characters"
- );
+ assert_eq!(err.to_string(), "The title cannot be longer than 50 bytes");
}
#[test]
pub enum TicketDescriptionError {
#[error("The description cannot be empty")]
Empty,
- #[error("The description cannot be longer than 500 characters")]
+ #[error("The description cannot be longer than 500 bytes")]
TooLong,
}
let err = TicketDescription::try_from(overly_long_description()).unwrap_err();
assert_eq!(
err.to_string(),
- "The description cannot be longer than 500 characters"
+ "The description cannot be longer than 500 bytes"
);
}
pub enum TicketTitleError {
#[error("The title cannot be empty")]
Empty,
- #[error("The title cannot be longer than 50 characters")]
+ #[error("The title cannot be longer than 50 bytes")]
TooLong,
}
#[test]
fn test_try_from_long_string() {
let err = TicketTitle::try_from(overly_long_title()).unwrap_err();
- assert_eq!(
- err.to_string(),
- "The title cannot be longer than 50 characters"
- );
+ assert_eq!(err.to_string(), "The title cannot be longer than 50 bytes");
}
#[test]