forked from jvm-bloggers/jvm-bloggers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInitialBlogDataPopulationTriggerSpec.groovy
42 lines (35 loc) · 1.66 KB
/
InitialBlogDataPopulationTriggerSpec.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package pl.tomaszdziurko.jvm_bloggers
import pl.tomaszdziurko.jvm_bloggers.blog_posts.BlogPostsFetchingScheduler;
import pl.tomaszdziurko.jvm_bloggers.blog_posts.domain.BlogPostRepository
import pl.tomaszdziurko.jvm_bloggers.blogs.BloggersDataFetchingScheduler;
import pl.tomaszdziurko.jvm_bloggers.blogs.domain.BlogRepository;
import spock.lang.Specification;
import spock.lang.Subject
class InitialBlogDataPopulationTriggerSpec extends Specification {
BlogRepository blogRepository = Mock()
BlogPostRepository blogPostRepository = Mock()
BloggersDataFetchingScheduler bloggersDataFetchingScheduler = Mock();
BlogPostsFetchingScheduler blogPostsFetchingScheduler = Mock();
@Subject
InitialBlogDataPopulationTrigger tested = new InitialBlogDataPopulationTrigger(blogRepository, blogPostRepository, bloggersDataFetchingScheduler, blogPostsFetchingScheduler)
def "Should trigger bloggers data population if there is no data"() {
given:
1 * blogRepository.count() >> 0
1 * blogPostRepository.count() >> 0
when:
tested.initializeDatabaseWithBlogDataIfEmpty()
then:
1 * bloggersDataFetchingScheduler.fetchBloggersData();
1 * blogPostsFetchingScheduler.checkRssForNewBlogPosts();
}
def "Should skip if bloggers data already exists"() {
given:
1 * blogRepository.count() >> 1
1 * blogPostRepository.count() >> 1
when:
tested.initializeDatabaseWithBlogDataIfEmpty()
then:
0 * bloggersDataFetchingScheduler.fetchBloggersData();
0 * blogPostsFetchingScheduler.checkRssForNewBlogPosts();
}
}