summaryrefslogtreecommitdiff
path: root/tst/com/p4square/grow/backend/resources/ResourceTestBase.java
blob: b4d7864a298a90c903cce25c0bc788d2dd89ee0e (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
 * Copyright 2015 Jesse Morgan
 */

package com.p4square.grow.backend.resources;

import java.io.IOException;

import org.restlet.Application;

import com.p4square.grow.model.Playlist;
import com.p4square.grow.model.Question;
import com.p4square.grow.model.TrainingRecord;
import com.p4square.grow.model.UserRecord;

import com.p4square.grow.backend.feed.FeedDataProvider;
import com.p4square.grow.provider.CollectionProvider;
import com.p4square.grow.provider.MapCollectionProvider;
import com.p4square.grow.provider.MapProvider;
import com.p4square.grow.provider.Provider;
import com.p4square.grow.provider.ProvidesAssessments;
import com.p4square.grow.provider.ProvidesQuestions;
import com.p4square.grow.provider.ProvidesStrings;
import com.p4square.grow.provider.ProvidesTrainingRecords;
import com.p4square.grow.provider.ProvidesUserRecords;
import com.p4square.grow.provider.ProvidesVideos;

import org.junit.Before;

/**
 * 
 * @author Jesse Morgan <jesse@jesterpm.net>
 */
public class ResourceTestBase {

    protected TestApplication mApplication;

    @Before
    public void setup() throws Exception {
        mApplication = new TestApplication();
        Application.setCurrent(mApplication);
    }

    public static class TestApplication extends Application implements
        ProvidesQuestions, ProvidesTrainingRecords, ProvidesUserRecords,
        ProvidesStrings, ProvidesAssessments
    {

        private final Provider<String, UserRecord> mUserRecordProvider;
        private final Provider<String, Question> mQuestionProvider;
        private final Provider<String, TrainingRecord> mTrainingRecordProvider;
        private final Provider<String, String> mStringProvider;
        private final CollectionProvider<String, String, String> mAnswerProvider;

        private Playlist mDefaultPlaylist;

        public TestApplication() {
            mStringProvider = new MapProvider<String, String>();
            mUserRecordProvider = new MapProvider<String, UserRecord>();
            mQuestionProvider = new MapProvider<String, Question>();
            mTrainingRecordProvider = new MapProvider<String, TrainingRecord>();
            mAnswerProvider = new MapCollectionProvider<String, String, String>();

            mDefaultPlaylist = new Playlist();
        }

        @Override
        public Provider<String, UserRecord> getUserRecordProvider() {
            return mUserRecordProvider;
        }

        @Override
        public Provider<String, Question> getQuestionProvider() {
            return mQuestionProvider;
        }

        @Override
        public Provider<String, TrainingRecord> getTrainingRecordProvider() {
            return mTrainingRecordProvider;
        }

        public void setDefaultPlaylist(Playlist playlist) {
            mDefaultPlaylist = playlist;
        }

        @Override
        public Playlist getDefaultPlaylist() throws IOException {
            return mDefaultPlaylist;
        }

        @Override
        public Provider<String, String> getStringProvider() {
            return mStringProvider;
        }

        @Override
        public CollectionProvider<String, String, String> getAnswerProvider() {
            return mAnswerProvider;
        }
    }
}