Package sagan.guides.support

Source Code of sagan.guides.support.UnderstandingDocsTests

package sagan.guides.support;

import sagan.guides.UnderstandingDoc;
import sagan.support.github.RepoContent;

import java.util.ArrayList;
import java.util.List;

import org.junit.Before;
import org.junit.Test;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.matches;
import static org.mockito.Mockito.mock;

/**
* Unit tests for {@link UnderstandingDocs}
*/
public class UnderstandingDocsTests {

    private ArrayList<RepoContent> repoContents = new ArrayList<>();
    private GuideOrganization org = mock(GuideOrganization.class);
    private UnderstandingDocs understandingGuidesService = new UnderstandingDocs(org, "my-udocs-repo");

    @Before
    public void setUp() {
        addRepoContent(repoContents, "foo", "foo", "dir");
        addRepoContent(repoContents, "rest", "rest", "dir");
        addRepoContent(repoContents, "README.src", "README.src", "file");
        addRepoContent(repoContents, "README.md", "README.md", "file");
        given(org.getRepoContents("understanding")).willReturn(repoContents);
    }

    @Test
    public void returnsOnlyDirContents() {
        List<UnderstandingDoc> guides = understandingGuidesService.findAll();

        assertThat(guides.size(), equalTo(2));
        assertThat(guides.get(0).getSubject(), equalTo("foo"));
        assertThat(guides.get(1).getSubject(), equalTo("rest"));
    }

    @Test
    public void testGetsContentForGuide() throws Exception {
        given(org.getMarkdownFileAsHtml(matches(".*foo.*README.*"))).willReturn("Understanding: foo!");
        given(org.getMarkdownFileAsHtml(matches(".*rest.*README.*"))).willReturn("Understanding: rest");

        List<UnderstandingDoc> guides = understandingGuidesService.findAll();

        assertThat(guides.get(0).getContent(), equalTo("Understanding: foo!"));
        assertThat(guides.get(1).getContent(), equalTo("Understanding: rest"));
    }

    @Test
    public void testGetsSidebarForGuide() throws Exception {
        given(org.getMarkdownFileAsHtml(matches(".*foo.*SIDEBAR.*"))).willReturn("foo sidebar");
        given(org.getMarkdownFileAsHtml(matches(".*rest.*SIDEBAR.*"))).willReturn("rest sidebar");

        List<UnderstandingDoc> guides = understandingGuidesService.findAll();

        assertThat(guides.get(0).getSidebar(), equalTo("foo sidebar"));
        assertThat(guides.get(1).getSidebar(), equalTo("rest sidebar"));
    }

    private void addRepoContent(ArrayList<RepoContent> repoContents, String name, String path, String type) {
        RepoContent repoContent = new RepoContent();
        repoContent.setName(name);
        repoContent.setPath(path);
        repoContent.setType(type);
        repoContents.add(repoContent);
    }
}
TOP

Related Classes of sagan.guides.support.UnderstandingDocsTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.