mononoke: make test megarepo configs a bit more useful

Summary: Now it's at least possible to add new configs

Reviewed By: mitrandir77

Differential Revision: D28444866

fbshipit-source-id: cf0e2e737a125bdbd3b7eff55e8ee3f1d5a193d2
This commit is contained in:
Stanislau Hlebik 2021-05-18 07:36:57 -07:00 committed by Facebook GitHub Bot
parent 27b248c075
commit 790cda7468

View File

@ -5,20 +5,30 @@
* GNU General Public License version 2.
*/
use anyhow::anyhow;
use async_trait::async_trait;
use context::CoreContext;
use megarepo_configs::types::{SyncConfigVersion, SyncTargetConfig, Target};
use megarepo_error::MegarepoError;
use slog::{info, Logger};
use std::collections::HashMap;
use crate::MononokeMegarepoConfigs;
pub struct TestMononokeMegarepoConfigs;
pub struct TestMononokeMegarepoConfigs {
config_versions: HashMap<(Target, SyncConfigVersion), SyncTargetConfig>,
}
impl TestMononokeMegarepoConfigs {
pub fn new(logger: &Logger) -> Self {
info!(logger, "Creating a new TestMononokeMegarepoConfigs");
Self
Self {
config_versions: HashMap::new(),
}
}
pub fn add(&mut self, key: (Target, SyncConfigVersion), target: SyncTargetConfig) {
self.config_versions.insert(key, target);
}
}
@ -35,10 +45,14 @@ impl MononokeMegarepoConfigs for TestMononokeMegarepoConfigs {
fn get_config_by_version(
&self,
_ctx: CoreContext,
_target: Target,
_version: SyncConfigVersion,
target: Target,
version: SyncConfigVersion,
) -> Result<SyncTargetConfig, MegarepoError> {
unimplemented!("TestMononokeMegarepoConfigs::get_config_by_version")
self.config_versions
.get(&(target.clone(), version.clone()))
.cloned()
.ok_or_else(|| anyhow!("{:?} not found", (target, version)))
.map_err(MegarepoError::internal)
}
async fn add_target_with_config_version(