166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov/* 266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * Copyright (C) 2017 The Android Open Source Project 366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * 466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * Licensed under the Apache License, Version 2.0 (the "License"); 566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * you may not use this file except in compliance with the License. 666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * You may obtain a copy of the License at 766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * 866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * http://www.apache.org/licenses/LICENSE-2.0 966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * 1066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * Unless required by applicable law or agreed to in writing, software 1166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * distributed under the License is distributed on an "AS IS" BASIS, 1266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * See the License for the specific language governing permissions and 1466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov * limitations under the License 1566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov */ 1666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 1766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovpackage com.android.server.backup.utils; 1866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 1966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_CATEGORY; 2066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_ID; 2166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_NAME; 2266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_VERSION; 233accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackbornimport static android.app.backup.BackupManagerMonitor.EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION; 2466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 2566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static com.google.common.truth.Truth.assertThat; 2666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 2766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static org.mockito.ArgumentMatchers.any; 2866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static org.mockito.Mockito.doThrow; 2966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport static org.mockito.Mockito.verify; 3066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 3166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport android.app.backup.IBackupManagerMonitor; 3266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport android.content.pm.PackageInfo; 3366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport android.os.Bundle; 3466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport android.os.RemoteException; 3523c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikovimport android.platform.test.annotations.Presubmit; 3623c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikovimport android.support.test.filters.SmallTest; 3723c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikovimport android.support.test.runner.AndroidJUnit4; 3866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 3966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport org.junit.Before; 4066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport org.junit.Test; 4123c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikovimport org.junit.runner.RunWith; 4266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport org.mockito.ArgumentCaptor; 4366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport org.mockito.Mock; 4466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovimport org.mockito.MockitoAnnotations; 4566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 4623c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikov@SmallTest 4723c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikov@Presubmit 4823c6007ccfcb29174569204c78c8f75e0d78ffe1Artem Iglikov@RunWith(AndroidJUnit4.class) 4966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikovpublic class BackupManagerMonitorUtilsTest { 5066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Mock private IBackupManagerMonitor mMonitorMock; 5166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 5266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Before 5366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void setUp() { 5466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov MockitoAnnotations.initMocks(this); 5566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 5666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 5766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 5866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void monitorEvent_monitorIsNull_returnsNull() throws Exception { 5966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov IBackupManagerMonitor result = BackupManagerMonitorUtils.monitorEvent(null, 0, null, 0, 6066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov null); 6166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 6266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isNull(); 6366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 6466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 6566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 6666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void monitorEvent_monitorOnEventThrows_returnsNull() throws Exception { 6766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov doThrow(new RemoteException()).when(mMonitorMock).onEvent(any(Bundle.class)); 6866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 6966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov IBackupManagerMonitor result = BackupManagerMonitorUtils.monitorEvent(mMonitorMock, 0, null, 7066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 0, null); 7166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 7266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov verify(mMonitorMock).onEvent(any(Bundle.class)); 7366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isNull(); 7466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 7566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 7666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 7766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void monitorEvent_packageAndExtrasAreNull_fillsBundleCorrectly() throws Exception { 7866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov IBackupManagerMonitor result = BackupManagerMonitorUtils.monitorEvent(mMonitorMock, 1, null, 7966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 2, null); 8066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 8166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isEqualTo(mMonitorMock); 8266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov ArgumentCaptor<Bundle> bundleCaptor = ArgumentCaptor.forClass(Bundle.class); 8366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov verify(mMonitorMock).onEvent(bundleCaptor.capture()); 8466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle eventBundle = bundleCaptor.getValue(); 8566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.size()).isEqualTo(2); 8666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_ID)).isEqualTo(1); 8766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_CATEGORY)).isEqualTo(2); 8866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 8966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 9066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 9166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void monitorEvent_packageAndExtrasAreNotNull_fillsBundleCorrectly() throws Exception { 9266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov PackageInfo packageInfo = new PackageInfo(); 9366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov packageInfo.packageName = "test.package"; 9466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov packageInfo.versionCode = 3; 9566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle extras = new Bundle(); 9666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov extras.putInt("key1", 4); 9766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov extras.putString("key2", "value2"); 9866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 9966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov IBackupManagerMonitor result = BackupManagerMonitorUtils.monitorEvent(mMonitorMock, 1, 10066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov packageInfo, 2, extras); 10166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 10266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isEqualTo(mMonitorMock); 10366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov ArgumentCaptor<Bundle> bundleCaptor = ArgumentCaptor.forClass(Bundle.class); 10466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov verify(mMonitorMock).onEvent(bundleCaptor.capture()); 10566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle eventBundle = bundleCaptor.getValue(); 1063accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.size()).isEqualTo(7); 10766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_ID)).isEqualTo(1); 10866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_CATEGORY)).isEqualTo(2); 10966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getString(EXTRA_LOG_EVENT_PACKAGE_NAME)).isEqualTo("test.package"); 11066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_PACKAGE_VERSION)).isEqualTo(3); 1113accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getLong(EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION)).isEqualTo(3); 1123accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getInt("key1")).isEqualTo(4); 1133accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getString("key2")).isEqualTo("value2"); 1143accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn } 1153accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn 1163accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn @Test 1173accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn public void monitorEvent_packageAndExtrasAreNotNull_fillsBundleCorrectlyLong() throws Exception { 1183accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn PackageInfo packageInfo = new PackageInfo(); 1193accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn packageInfo.packageName = "test.package"; 1203accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn packageInfo.versionCode = 3; 1213accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn packageInfo.versionCodeMajor = 10; 1223accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn Bundle extras = new Bundle(); 1233accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn extras.putInt("key1", 4); 1243accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn extras.putString("key2", "value2"); 1253accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn 1263accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn IBackupManagerMonitor result = BackupManagerMonitorUtils.monitorEvent(mMonitorMock, 1, 1273accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn packageInfo, 2, extras); 1283accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn 1293accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(result).isEqualTo(mMonitorMock); 1303accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn ArgumentCaptor<Bundle> bundleCaptor = ArgumentCaptor.forClass(Bundle.class); 1313accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn verify(mMonitorMock).onEvent(bundleCaptor.capture()); 1323accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn Bundle eventBundle = bundleCaptor.getValue(); 1333accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.size()).isEqualTo(7); 1343accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_ID)).isEqualTo(1); 1353accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_CATEGORY)).isEqualTo(2); 1363accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getString(EXTRA_LOG_EVENT_PACKAGE_NAME)).isEqualTo("test.package"); 1373accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getInt(EXTRA_LOG_EVENT_PACKAGE_VERSION)).isEqualTo(3); 1383accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn assertThat(eventBundle.getLong(EXTRA_LOG_EVENT_PACKAGE_LONG_VERSION)).isEqualTo( 1393accca05ddcad9d0b1b313eae49f273e39121d3cDianne Hackborn (10L << 32) | 3); 14066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getInt("key1")).isEqualTo(4); 14166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(eventBundle.getString("key2")).isEqualTo("value2"); 14266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 14366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 14466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 14566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraString_bundleExists_fillsBundleCorrectly() throws Exception { 14666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle bundle = new Bundle(); 14766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 14866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(bundle, "key", "value"); 14966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 15066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isEqualTo(bundle); 15166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 15266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getString("key")).isEqualTo("value"); 15366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 15466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 15566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 15666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraString_bundleDoesNotExist_fillsBundleCorrectly() 15766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov throws Exception { 15866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(null, "key", "value"); 15966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 16066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isNotNull(); 16166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 16266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getString("key")).isEqualTo("value"); 16366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 16466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 16566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 16666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 16766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraLong_bundleExists_fillsBundleCorrectly() throws Exception { 16866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle bundle = new Bundle(); 16966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 17066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(bundle, "key", 123); 17166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 17266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isEqualTo(bundle); 17366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 17466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getLong("key")).isEqualTo(123); 17566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 17666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 17766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 17866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraLong_bundleDoesNotExist_fillsBundleCorrectly() throws Exception { 17966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(null, "key", 123); 18066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 18166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isNotNull(); 18266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 18366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getLong("key")).isEqualTo(123); 18466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 18566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 18666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 18766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraBoolean_bundleExists_fillsBundleCorrectly() throws Exception { 18866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle bundle = new Bundle(); 18966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 19066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(bundle, "key", true); 19166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 19266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isEqualTo(bundle); 19366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 19466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getBoolean("key")).isTrue(); 19566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 19666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 19766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov @Test 19866ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov public void putMonitoringExtraBoolean_bundleDoesNotExist_fillsBundleCorrectly() 19966ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov throws Exception { 20066ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov Bundle result = BackupManagerMonitorUtils.putMonitoringExtra(null, "key", true); 20166ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 20266ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result).isNotNull(); 20366ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.size()).isEqualTo(1); 20466ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov assertThat(result.getBoolean("key")).isTrue(); 20566ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov } 20666ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov 20766ff1d62c02cd70d660b0fa99715c711faa635e9Artem Iglikov}