use crabka_protocol::records::RecordBatch;
use crate::coordinator::unified::actor::PendingRecords;
#[derive(Debug, PartialEq, Eq)]
pub(crate) enum ConvertOutcome {
NotClassic,
Converted,
RejectLiveMembers,
}
pub(crate) fn classic_group_metadata_tombstone_batch(group_id: &str, now_ms: i64) -> RecordBatch {
PendingRecords {
classic_group_metadata_tombstone: true,
..Default::default()
}
.into_batch(group_id, now_ms)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn tombstone_batch_has_one_null_value_k2_record() {
let batch = classic_group_metadata_tombstone_batch("g", 123);
assert_eq!(batch.records.len(), 1, "exactly one record");
let r = &batch.records[0];
assert!(r.key.is_some(), "k2 GroupMetadata key present");
assert!(r.value.is_none(), "tombstone = null value");
let key = r.key.as_ref().unwrap();
assert_eq!(
&key[..2],
&2i16.to_be_bytes(),
"classic GroupMetadata key version 2"
);
}
}