12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- /*
- * Copyright 2019-2020 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package io.spring.gradle.convention.sagan;
- import okhttp3.mockwebserver.MockResponse;
- import okhttp3.mockwebserver.MockWebServer;
- import okhttp3.mockwebserver.RecordedRequest;
- import org.junit.jupiter.api.AfterEach;
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- import org.springframework.gradle.sagan.Release;
- import org.springframework.gradle.sagan.SaganApi;
- import java.nio.charset.Charset;
- import java.util.concurrent.TimeUnit;
- import static org.assertj.core.api.Assertions.assertThat;
- public class SaganApiTests {
- private MockWebServer server;
- private SaganApi sagan;
- private String baseUrl;
- @BeforeEach
- public void setup() throws Exception {
- this.server = new MockWebServer();
- this.server.start();
- this.sagan = new SaganApi("mock-oauth-token");
- this.baseUrl = this.server.url("/api").toString();
- this.sagan.setBaseUrl(this.baseUrl);
- }
- @AfterEach
- public void cleanup() throws Exception {
- this.server.shutdown();
- }
- @Test
- public void createWhenValidThenNoException() throws Exception {
- this.server.enqueue(new MockResponse());
- Release release = new Release();
- release.setVersion("5.6.0-SNAPSHOT");
- release.setApiDocUrl("https://docs.spring.io/spring-security/site/docs/{version}/api/");
- release.setReferenceDocUrl("https://docs.spring.io/spring-security/reference/{version}/index.html");
- this.sagan.createReleaseForProject(release, "spring-security");
- RecordedRequest request = this.server.takeRequest(1, TimeUnit.SECONDS);
- assertThat(request.getRequestUrl().toString()).isEqualTo(this.baseUrl + "/projects/spring-security/releases");
- assertThat(request.getMethod()).isEqualToIgnoringCase("post");
- assertThat(request.getHeaders().get("Authorization")).isEqualTo("Basic bm90LXVzZWQ6bW9jay1vYXV0aC10b2tlbg==");
- assertThat(request.getBody().readString(Charset.defaultCharset())).isEqualToIgnoringWhitespace("{\n" +
- " \"version\":\"5.6.0-SNAPSHOT\",\n" +
- " \"current\":false,\n" +
- " \"referenceDocUrl\":\"https://docs.spring.io/spring-security/reference/{version}/index.html\",\n" +
- " \"apiDocUrl\":\"https://docs.spring.io/spring-security/site/docs/{version}/api/\"\n" +
- "}");
- }
- @Test
- public void deleteWhenValidThenNoException() throws Exception {
- this.server.enqueue(new MockResponse());
- this.sagan.deleteReleaseForProject("5.6.0-SNAPSHOT", "spring-security");
- RecordedRequest request = this.server.takeRequest(1, TimeUnit.SECONDS);
- assertThat(request.getRequestUrl().toString()).isEqualTo(this.baseUrl + "/projects/spring-security/releases/5.6.0-SNAPSHOT");
- assertThat(request.getMethod()).isEqualToIgnoringCase("delete");
- assertThat(request.getHeaders().get("Authorization")).isEqualTo("Basic bm90LXVzZWQ6bW9jay1vYXV0aC10b2tlbg==");
- assertThat(request.getBody().readString(Charset.defaultCharset())).isEmpty();
- }
- }
|