1/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.exchange.provider;
18
19import com.android.emailcommon.provider.Account;
20import com.android.emailcommon.provider.EmailContent.Message;
21import com.android.emailcommon.provider.Mailbox;
22
23import android.content.Context;
24
25/**
26 * Simplified EmailContent class setup (condensed from ProviderTestUtils in com.android.email)
27 */
28public class EmailContentSetupUtils {
29
30    /**
31     * No constructor - statics only
32     */
33    private EmailContentSetupUtils() {
34    }
35
36    /**
37     * Create an account for test purposes
38     */
39    public static Account setupAccount(String name, boolean saveIt, Context context) {
40        Account account = new Account();
41
42        account.mDisplayName = name;
43        account.mEmailAddress = name + "@android.com";
44        account.mProtocolVersion = "2.5" + name;
45        if (saveIt) {
46            account.save(context);
47        }
48        return account;
49    }
50
51    /**
52     * Create a mailbox for test purposes
53     */
54    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
55            Context context) {
56        return setupMailbox(name, accountId, saveIt, context, Mailbox.TYPE_MAIL, null);
57    }
58
59    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
60            Context context, int type) {
61        return setupMailbox(name, accountId, saveIt, context, type, null);
62    }
63
64    public static Mailbox setupMailbox(String name, long accountId, boolean saveIt,
65            Context context, int type, Mailbox parentBox) {
66        Mailbox box = new Mailbox();
67
68        box.mDisplayName = name;
69        box.mAccountKey = accountId;
70        box.mSyncKey = "sync-key-" + name;
71        box.mSyncLookback = 2;
72        box.mSyncInterval = Account.CHECK_INTERVAL_NEVER;
73        box.mType = type;
74        box.mServerId = "serverid-" + name;
75        box.mParentServerId = parentBox != null ? parentBox.mServerId : "parent-serverid-" + name;
76
77        if (saveIt) {
78            box.save(context);
79        }
80        return box;
81    }
82
83    /**
84     * Create a message for test purposes
85     */
86    public static Message setupMessage(String name, long accountId, long mailboxId,
87            boolean addBody, boolean saveIt, Context context) {
88        // Default starred, read,  (backword compatibility)
89        return setupMessage(name, accountId, mailboxId, addBody, saveIt, context, true, true);
90    }
91
92    /**
93     * Create a message for test purposes
94     */
95    public static Message setupMessage(String name, long accountId, long mailboxId,
96            boolean addBody, boolean saveIt, Context context, boolean starred, boolean read) {
97        Message message = new Message();
98
99        message.mDisplayName = name;
100        message.mMailboxKey = mailboxId;
101        message.mAccountKey = accountId;
102        message.mFlagRead = read;
103        message.mFlagLoaded = Message.FLAG_LOADED_UNLOADED;
104        message.mFlagFavorite = starred;
105        message.mServerId = "serverid " + name;
106
107        if (addBody) {
108            message.mText = "body text " + name;
109            message.mHtml = "body html " + name;
110        }
111
112        if (saveIt) {
113            message.save(context);
114        }
115        return message;
116    }
117}
118