gitlab/api/users/impersonation_tokens/
delete.rs1use derive_builder::Builder;
8
9use crate::api::endpoint_prelude::*;
10
11#[derive(Debug, Builder, Clone)]
13pub struct DeleteImpersonationToken {
14 user: u64,
16 token_id: u64,
18}
19
20impl DeleteImpersonationToken {
21 pub fn builder() -> DeleteImpersonationTokenBuilder {
23 DeleteImpersonationTokenBuilder::default()
24 }
25}
26
27impl Endpoint for DeleteImpersonationToken {
28 fn method(&self) -> Method {
29 Method::DELETE
30 }
31
32 fn endpoint(&self) -> Cow<'static, str> {
33 format!("users/{}/impersonation_tokens/{}", self.user, self.token_id).into()
34 }
35}
36
37#[cfg(test)]
38mod tests {
39 use http::Method;
40
41 use crate::api::users::impersonation_tokens::{
42 DeleteImpersonationToken, DeleteImpersonationTokenBuilderError,
43 };
44 use crate::api::{self, Query};
45 use crate::test::client::{ExpectedUrl, SingleTestClient};
46
47 #[test]
48 fn user_and_token_id_are_necessary() {
49 let err = DeleteImpersonationToken::builder().build().unwrap_err();
50 crate::test::assert_missing_field!(err, DeleteImpersonationTokenBuilderError, "user");
51 }
52
53 #[test]
54 fn user_is_necessary() {
55 let err = DeleteImpersonationToken::builder()
56 .token_id(1)
57 .build()
58 .unwrap_err();
59 crate::test::assert_missing_field!(err, DeleteImpersonationTokenBuilderError, "user");
60 }
61
62 #[test]
63 fn token_id_is_necessary() {
64 let err = DeleteImpersonationToken::builder()
65 .user(1)
66 .build()
67 .unwrap_err();
68 crate::test::assert_missing_field!(err, DeleteImpersonationTokenBuilderError, "token_id");
69 }
70
71 #[test]
72 fn user_and_token_id_are_sufficient() {
73 DeleteImpersonationToken::builder()
74 .user(1)
75 .token_id(1)
76 .build()
77 .unwrap();
78 }
79
80 #[test]
81 fn endpoint() {
82 let endpoint = ExpectedUrl::builder()
83 .method(Method::DELETE)
84 .endpoint("users/1/impersonation_tokens/1")
85 .build()
86 .unwrap();
87 let client = SingleTestClient::new_raw(endpoint, "");
88
89 let endpoint = DeleteImpersonationToken::builder()
90 .user(1)
91 .token_id(1)
92 .build()
93 .unwrap();
94 api::ignore(endpoint).query(&client).unwrap();
95 }
96}