use objets_metier_rs::errors::SageResult;
use objets_metier_rs::wrappers::cial::factories::*;
use objets_metier_rs::wrappers::cial::*;
const CIAL_CLSID: &str = "Objets100c.CIAL";
fn get_test_config() -> (String, String, String) {
let username =
std::env::var("SAGE_USERNAME").unwrap_or_else(|_| "<Administrateur>".to_string());
let password = std::env::var("SAGE_PASSWORD").unwrap_or_else(|_| "".to_string());
let database =
std::env::var("SAGE_DATABASE").unwrap_or_else(|_| "D:\\TMP\\BIJOU.MAE".to_string());
(username, password, database)
}
fn connect_cial() -> SageResult<CialApplication> {
let (username, password, database) = get_test_config();
let cial = CialApplication::new(CIAL_CLSID)?;
cial.set_name(&database)?;
let loggable = cial.loggable()?;
loggable.set_user_name(&username)?;
loggable.set_user_pwd(&password)?;
cial.open()?;
Ok(cial)
}
#[test]
#[ignore]
fn test_all_34_factories_accessible() -> SageResult<()> {
let app = connect_cial()?;
println!("Testing all 34 CIAL factories...\n");
app.factory_article()?;
app.factory_famille()?;
app.factory_depot()?;
app.factory_document_vente()?;
app.factory_document_achat()?;
app.factory_document_stock()?;
app.factory_document_interne()?;
app.factory_document()?;
println!("✓ Phase 1: 8/8 factories");
app.factory_gamme()?;
app.factory_produit()?;
app.factory_unite()?;
app.factory_conditionnement()?;
app.factory_glossaire()?;
println!("✓ Phase 2: 5/5 factories");
app.factory_categorie_compta_vente()?;
app.factory_categorie_compta_achat()?;
app.factory_categorie_compta_stock()?;
app.factory_categorie_tarif()?;
app.factory_param_doc_vente()?;
app.factory_param_doc_achat()?;
app.factory_param_doc_stock()?;
app.factory_param_doc_interne()?;
app.factory_souche_vente()?;
app.factory_souche_achat()?;
app.factory_souche_stock()?;
app.factory_souche_interne()?;
app.factory_modele()?;
app.factory_condition_livraison()?;
app.factory_expedition()?;
app.factory_periodicite()?;
println!("✓ Phase 3: 16/16 factories");
app.factory_bareme_commission()?;
app.factory_bareme_solde()?;
app.factory_bareme_rabais()?;
app.factory_article_stat()?;
app.factory_arrondi()?;
println!("✓ Phase 4: 5/5 factories");
println!("\n✅ All 34 factories accessible!");
Ok(())
}
#[test]
#[ignore]
fn test_factory_article_list() -> SageResult<()> {
let app = connect_cial()?;
let factory = app.factory_article()?;
let _articles = factory.list()?;
println!("✓ FactoryArticle.list() works");
Ok(())
}
#[test]
#[ignore]
fn test_factory_arrondi_list() -> SageResult<()> {
let app = connect_cial()?;
let factory = app.factory_arrondi()?;
let _arrondis = factory.list()?;
println!("✓ FactoryArrondi.list() works (no ExistIntitule)");
Ok(())
}
#[test]
fn test_cial_types_compile() {
fn _test_factory_types() {
let _: Option<FactoryArticle> = None;
let _: Option<FactoryFamille> = None;
let _: Option<FactoryDepot> = None;
let _: Option<FactoryDocumentVente> = None;
let _: Option<FactoryGamme> = None;
let _: Option<FactoryBaremeCommission> = None;
let _: Option<FactoryArrondi> = None;
}
println!("✓ All CIAL types compile");
}