1 /*
2  * Copyright (C) 2022 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 
17 package com.android.server.tare;
18 
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertNull;
22 
23 import android.util.SparseLongArray;
24 
25 import java.util.List;
26 
27 public class TareTestUtils {
assertLedgersEqual(Ledger expected, Ledger actual)28     static void assertLedgersEqual(Ledger expected, Ledger actual) {
29         if (expected == null) {
30             assertNull(actual);
31             return;
32         }
33         assertNotNull(actual);
34         assertEquals(expected.getCurrentBalance(), actual.getCurrentBalance());
35 
36         List<Ledger.Transaction> expectedTransactions = expected.getTransactions();
37         List<Ledger.Transaction> actualTransactions = actual.getTransactions();
38         assertEquals(expectedTransactions.size(), actualTransactions.size());
39         for (int i = 0; i < expectedTransactions.size(); ++i) {
40             assertTransactionsEqual(expectedTransactions.get(i), actualTransactions.get(i));
41         }
42 
43         List<Ledger.RewardBucket> expectedRewardBuckets = expected.getRewardBuckets();
44         List<Ledger.RewardBucket> actualRewardBuckets = actual.getRewardBuckets();
45         assertEquals(expectedRewardBuckets.size(), actualRewardBuckets.size());
46         for (int i = 0; i < expectedRewardBuckets.size(); ++i) {
47             assertRewardBucketsEqual(expectedRewardBuckets.get(i), actualRewardBuckets.get(i));
48         }
49     }
50 
51 
assertSparseLongArraysEqual(SparseLongArray expected, SparseLongArray actual)52     static void assertSparseLongArraysEqual(SparseLongArray expected, SparseLongArray actual) {
53         if (expected == null) {
54             assertNull(actual);
55             return;
56         }
57         assertNotNull(actual);
58         final int size = expected.size();
59         assertEquals(size, actual.size());
60         for (int i = 0; i < size; ++i) {
61             assertEquals(expected.keyAt(i), actual.keyAt(i));
62             assertEquals(expected.valueAt(i), actual.valueAt(i));
63         }
64     }
65 
assertRewardBucketsEqual(Ledger.RewardBucket expected, Ledger.RewardBucket actual)66     static void assertRewardBucketsEqual(Ledger.RewardBucket expected, Ledger.RewardBucket actual) {
67         if (expected == null) {
68             assertNull(actual);
69             return;
70         }
71         assertNotNull(actual);
72         assertEquals(expected.startTimeMs, actual.startTimeMs);
73         assertSparseLongArraysEqual(expected.cumulativeDelta, actual.cumulativeDelta);
74     }
75 
assertTransactionsEqual(Ledger.Transaction expected, Ledger.Transaction actual)76     static void assertTransactionsEqual(Ledger.Transaction expected, Ledger.Transaction actual) {
77         if (expected == null) {
78             assertNull(actual);
79             return;
80         }
81         assertNotNull(actual);
82         assertEquals(expected.startTimeMs, actual.startTimeMs);
83         assertEquals(expected.endTimeMs, actual.endTimeMs);
84         assertEquals(expected.eventId, actual.eventId);
85         assertEquals(expected.tag, actual.tag);
86         assertEquals(expected.delta, actual.delta);
87         assertEquals(expected.ctp, actual.ctp);
88     }
89 }
90