@@ -0,0 +1,2950 @@
+/*%0A * Copyright 2016 Jaakko Hannikainen%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *  http://www.apache.org/licenses/LICENSE-2.0%0A *%0A *  Unless required by applicable law or agreed to in writing, software%0A *  distributed under the License is distributed on an %22AS IS%22 BASIS,%0A *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A *  See the License for the specific language governing permissions and%0A *  limitations under the License.%0A */%0Apackage fi.jgke.tagger.unit.service;%0A%0Aimport fi.jgke.tagger.domain.Comment;%0Aimport fi.jgke.tagger.domain.Person;%0Aimport fi.jgke.tagger.domain.Source;%0Aimport fi.jgke.tagger.domain.Type;%0Aimport fi.jgke.tagger.repository.CommentRepository;%0Aimport fi.jgke.tagger.repository.SourceRepository;%0Aimport fi.jgke.tagger.service.CommentService;%0Aimport fi.jgke.tagger.service.PersonService;%0Aimport fi.jgke.tagger.service.SourceService;%0Aimport fi.jgke.tagger.service.ThumbnailService;%0Aimport org.junit.Assert;%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0Aimport org.mockito.*;%0A%0Aimport java.util.ArrayList;%0A%0Aimport static org.junit.Assert.assertTrue;%0Aimport static org.mockito.Mockito.verify;%0Aimport static org.mockito.Mockito.when;%0A%0Apublic class SourceServiceTest %7B%0A%0A    @InjectMocks%0A    SourceService sourceService;%0A%0A    @Mock%0A    SourceRepository sourceRepository;%0A%0A    @Mock%0A    PersonService personService;%0A%0A    @Mock%0A    ThumbnailService thumbnailService;%0A%0A    @Before%0A    public void init() %7B%0A        MockitoAnnotations.initMocks(this);%0A    %7D%0A%0A    @Test%0A    public void createSource() %7B%0A        Person person = new Person();%0A        String title = %22title%22;%0A        String url = %22http://example.com%22;%0A        Type type = new Type();%0A%0A        ArgumentCaptor%3CSource%3E varArgs = ArgumentCaptor.forClass(Source.class);%0A        when(sourceRepository.save(varArgs.capture())).thenAnswer(AdditionalAnswers.returnsFirstArg());%0A        when(personService.getAuthenticatedPerson()).thenReturn(person);%0A%0A        Source result = sourceService.createSource(title, url, type);%0A%0A        verify(sourceRepository).save(result);%0A        Assert.assertEquals(title, result.getTitle());%0A        Assert.assertEquals(url, result.getUrl());%0A        Assert.assertEquals(type, result.getSourcetype());%0A        Assert.assertEquals(person, result.getPerson());%0A        verify(thumbnailService).createThumbnailForSource(result);%0A    %7D%0A%0A%0A    @Test%0A    public void isValidUrl() %7B%0A        String validUrls%5B%5D = %7B%22http://example.com%22, %22https://example.com%22, %22http://xn--bcher-kva.ch%22, %22http://1.2.3.4/%22%7D;%0A        String invalidUrls%5B%5D = %7B%22%22, %22http://%22, %22ftp://example.com%22%7D;%0A%0A        for (String s : validUrls) %7B%0A            assertTrue(sourceService.isValidUrl(s));%0A        %7D%0A        for (String s : invalidUrls) %7B%0A            assertTrue(!sourceService.isValidUrl(s));%0A        %7D%0A    %7D%0A%7D%0A

Add test for SourceService