blob: cc46e6d3ddce2188b1a5fd863e01adf8434d9fd2 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_
#define CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_
#include <string>
#include "base/containers/flat_set.h"
#include "chromeos/network/cellular_esim_profile_handler.h"
namespace chromeos {
// A Test implementation of CellularESimProfileHandler that stores profile list
// in-memory and fetches esim profiles directly from the fake hermes clients.
class TestCellularESimProfileHandler : public CellularESimProfileHandler {
public:
TestCellularESimProfileHandler();
~TestCellularESimProfileHandler() override;
void SetHasRefreshedProfilesForEuicc(const std::string& eid,
bool has_refreshed);
// Enables or disables profile list update notification.
// When set to false, this class will disable triggering the
// NotifyESimProfileListUpdated() and when the next time it's set to true, it
// will call the NotifyESimProfileListUpdated() to fire any pending list
// update notification.
void SetEnableNotifyProfileListUpdate(bool enable_notify_profile_list_update);
// CellularESimProfileHandler:
std::vector<CellularESimProfile> GetESimProfiles() override;
bool HasRefreshedProfilesForEuicc(const std::string& eid) override;
void SetDevicePrefs(PrefService* device_prefs) override;
void OnHermesPropertiesUpdated() override;
private:
std::vector<CellularESimProfile> esim_profile_states_;
base::flat_set<std::string> refreshed_eids_;
bool enable_notify_profile_list_update_;
bool has_pending_notify_list_update_;
};
} // namespace chromeos
#endif // CHROMEOS_NETWORK_TEST_CELLULAR_ESIM_PROFILE_HANDLER_H_