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;
18
19import android.content.Context;
20import android.test.AndroidTestCase;
21import android.test.suitebuilder.annotation.SmallTest;
22
23/**
24 * You can run this entire test case with:
25 *   runtest -c com.android.exchange.EasAccountServiceTests exchange
26 */
27@SmallTest
28public class EasAccountServiceTests extends AndroidTestCase {
29
30    Context mMockContext;
31
32    @Override
33    public void setUp() throws Exception {
34        super.setUp();
35        mMockContext = getContext();
36    }
37
38    public void testResetHeartbeats() {
39        EasAccountService svc = new EasAccountService();
40        // Test case in which the minimum and force heartbeats need to come up
41        svc.mPingMaxHeartbeat = 1000;
42        svc.mPingMinHeartbeat = 200;
43        svc.mPingHeartbeat = 300;
44        svc.mPingForceHeartbeat = 100;
45        svc.mPingHeartbeatDropped = true;
46        svc.resetHeartbeats(400);
47        assertEquals(400, svc.mPingMinHeartbeat);
48        assertEquals(1000, svc.mPingMaxHeartbeat);
49        assertEquals(400, svc.mPingHeartbeat);
50        assertEquals(400, svc.mPingForceHeartbeat);
51        assertFalse(svc.mPingHeartbeatDropped);
52
53        // Test case in which the force heartbeat needs to come up
54        svc.mPingMaxHeartbeat = 1000;
55        svc.mPingMinHeartbeat = 200;
56        svc.mPingHeartbeat = 100;
57        svc.mPingForceHeartbeat = 100;
58        svc.mPingHeartbeatDropped = true;
59        svc.resetHeartbeats(150);
60        assertEquals(200, svc.mPingMinHeartbeat);
61        assertEquals(1000, svc.mPingMaxHeartbeat);
62        assertEquals(150, svc.mPingHeartbeat);
63        assertEquals(150, svc.mPingForceHeartbeat);
64        assertFalse(svc.mPingHeartbeatDropped);
65
66        // Test case in which the maximum needs to come down
67        svc.mPingMaxHeartbeat = 1000;
68        svc.mPingMinHeartbeat = 200;
69        svc.mPingHeartbeat = 800;
70        svc.mPingForceHeartbeat = 100;
71        svc.mPingHeartbeatDropped = true;
72        svc.resetHeartbeats(600);
73        assertEquals(200, svc.mPingMinHeartbeat);
74        assertEquals(600, svc.mPingMaxHeartbeat);
75        assertEquals(600, svc.mPingHeartbeat);
76        assertEquals(100, svc.mPingForceHeartbeat);
77        assertFalse(svc.mPingHeartbeatDropped);
78    }
79}
80