gitlab/api/runners/
delete.rs1use derive_builder::Builder;
8
9use crate::api::endpoint_prelude::*;
10
11#[derive(Debug, Builder, Clone)]
13pub struct DeleteRunner {
14 runner: u64,
16}
17
18impl DeleteRunner {
19 pub fn builder() -> DeleteRunnerBuilder {
21 DeleteRunnerBuilder::default()
22 }
23}
24
25impl Endpoint for DeleteRunner {
26 fn method(&self) -> Method {
27 Method::DELETE
28 }
29
30 fn endpoint(&self) -> Cow<'static, str> {
31 format!("runners/{}", self.runner).into()
32 }
33}
34
35#[cfg(test)]
36mod tests {
37 use http::Method;
38
39 use crate::api::runners::{DeleteRunner, DeleteRunnerBuilderError};
40 use crate::api::{self, Query};
41 use crate::test::client::{ExpectedUrl, SingleTestClient};
42
43 #[test]
44 fn runner_is_required() {
45 let err = DeleteRunner::builder().build().unwrap_err();
46 crate::test::assert_missing_field!(err, DeleteRunnerBuilderError, "runner");
47 }
48
49 #[test]
50 fn runner_is_sufficient() {
51 DeleteRunner::builder().runner(1).build().unwrap();
52 }
53
54 #[test]
55 fn endpoint() {
56 let endpoint = ExpectedUrl::builder()
57 .method(Method::DELETE)
58 .endpoint("runners/1")
59 .build()
60 .unwrap();
61 let client = SingleTestClient::new_raw(endpoint, "");
62
63 let endpoint = DeleteRunner::builder().runner(1).build().unwrap();
64 api::ignore(endpoint).query(&client).unwrap();
65 }
66}