gitlab/api/projects/pipeline_schedules/
pipelines.rs1use derive_builder::Builder;
8
9use crate::api::common::NameOrId;
10use crate::api::endpoint_prelude::*;
11
12#[derive(Debug, Builder, Clone)]
14#[builder(setter(strip_option))]
15pub struct PipelineSchedulePipelines<'a> {
16 #[builder(setter(into))]
18 project: NameOrId<'a>,
19 id: u64,
21}
22
23impl<'a> PipelineSchedulePipelines<'a> {
24 pub fn builder() -> PipelineSchedulePipelinesBuilder<'a> {
26 PipelineSchedulePipelinesBuilder::default()
27 }
28}
29
30impl Endpoint for PipelineSchedulePipelines<'_> {
31 fn method(&self) -> Method {
32 Method::GET
33 }
34
35 fn endpoint(&self) -> Cow<'static, str> {
36 format!(
37 "projects/{}/pipeline_schedules/{}/pipelines",
38 self.project, self.id
39 )
40 .into()
41 }
42}
43
44impl Pageable for PipelineSchedulePipelines<'_> {}
45
46#[cfg(test)]
47mod tests {
48 use crate::api::projects::pipeline_schedules::{
49 PipelineSchedulePipelines, PipelineSchedulePipelinesBuilderError,
50 };
51 use crate::api::{self, Query};
52 use crate::test::client::{ExpectedUrl, SingleTestClient};
53
54 #[test]
55 fn project_and_id_are_needed() {
56 let err = PipelineSchedulePipelines::builder().build().unwrap_err();
57 crate::test::assert_missing_field!(err, PipelineSchedulePipelinesBuilderError, "project");
58 }
59
60 #[test]
61 fn project_is_needed() {
62 let err = PipelineSchedulePipelines::builder()
63 .id(1)
64 .build()
65 .unwrap_err();
66 crate::test::assert_missing_field!(err, PipelineSchedulePipelinesBuilderError, "project");
67 }
68
69 #[test]
70 fn id_is_needed() {
71 let err = PipelineSchedulePipelines::builder()
72 .project(1)
73 .build()
74 .unwrap_err();
75 crate::test::assert_missing_field!(err, PipelineSchedulePipelinesBuilderError, "id");
76 }
77
78 #[test]
79 fn project_and_id_are_sufficient() {
80 PipelineSchedulePipelines::builder()
81 .project(1)
82 .id(1)
83 .build()
84 .unwrap();
85 }
86
87 #[test]
88 fn endpoint() {
89 let endpoint = ExpectedUrl::builder()
90 .endpoint("projects/simple%2Fproject/pipeline_schedules/10/pipelines")
91 .build()
92 .unwrap();
93 let client = SingleTestClient::new_raw(endpoint, "");
94
95 let endpoint = PipelineSchedulePipelines::builder()
96 .project("simple/project")
97 .id(10)
98 .build()
99 .unwrap();
100 api::ignore(endpoint).query(&client).unwrap();
101 }
102}