polywrap_tests_utils 0.1.11

Utilities for testing Polywrap Client
Documentation
use std::{
    fmt::{Debug, Formatter},
    sync::Arc,
};

use polywrap_core::{package::WrapPackage, wrapper::Wrapper};
use wrap_manifest_schemas::versions::WrapManifest;

use super::{DifferentMockWrapper, MockWrapper};

pub struct MockPackage;
pub struct DifferentMockPackage;

impl Debug for MockPackage {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        write!(f, "MockPackage")
    }
}

impl Debug for DifferentMockPackage {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        write!(f, "DifferentMockPackage")
    }
}

impl WrapPackage for MockPackage {
    fn create_wrapper(&self) -> Result<Arc<dyn Wrapper>, polywrap_core::error::Error> {
        Ok(Arc::new(MockWrapper {}))
    }

    fn get_manifest(
        &self,
        _: Option<&polywrap_core::package::GetManifestOptions>,
    ) -> Result<WrapManifest, polywrap_core::error::Error> {
        unimplemented!()
    }
}

impl WrapPackage for DifferentMockPackage {
    fn create_wrapper(&self) -> Result<Arc<dyn Wrapper>, polywrap_core::error::Error> {
        Ok(Arc::new(DifferentMockWrapper {}))
    }

    fn get_manifest(
        &self,
        _: Option<&polywrap_core::package::GetManifestOptions>,
    ) -> Result<WrapManifest, polywrap_core::error::Error> {
        unimplemented!()
    }
}

pub fn get_mock_package() -> Arc<dyn WrapPackage> {
    Arc::new(MockPackage {})
}

pub fn get_different_mock_package() -> Arc<dyn WrapPackage> {
    Arc::new(DifferentMockPackage {})
}