use crate::e2e::escape::escape_csharp;
use crate::e2e::fixture::Fixture;
pub(super) fn declared_error_value_check(fixture: &Fixture, errors: &[crate::core::ir::ErrorDef]) -> Option<String> {
use crate::e2e::codegen::declared_error_variant::{DeclaredErrorAssertion, classify, skip_line};
match classify("csharp", fixture, errors) {
DeclaredErrorAssertion::Undeclared => None,
DeclaredErrorAssertion::Assert(declared) => {
let escaped = escape_csharp(declared);
Some(format!(
" Assert.True(thrown.Message != null && thrown.Message.Contains(\"{escaped}\") \
|| thrown.GetType().Name.Contains(\"{escaped}\"), \"expected error to match: {escaped}\");"
))
}
DeclaredErrorAssertion::Unsubstantiable(variant) => {
Some(skip_line(" ", "//", variant, &fixture.id, "csharp"))
}
}
}