Ejemplo n.º 1
0
        public IObservable<T> Load<T>(Uri uri, Options options = null)
        {
            if (!Supports<T>(uri))
                throw new NotSupportedException($"Uri not supported: {uri}");

            // Todo only passed parsed uri
            var bundleName = uri.Host;

            return _bundleManifestLoader.Load()
                .ContinueWith(m => LoadAllDependencies(m, bundleName, options))
                .ContinueWith(x => _cachedLoader
                    .Load(bundleName, options)
                    .DoOnError(ex => x.ForEach(y => _cachedLoader.UnloadDependency(y, bundleName)))) // Todo DRY
                    .Cast<IBundle, T>();
        }
Ejemplo n.º 2
0
        public void SetUp()
        {
            _cachedLoader = Substitute.For <IBundleCachedLoader>();

            // Mock bundleManifest
            _bundleManifestLoader = Substitute.For <IBundleManifestLoader>();
            _bundleManifest       = Substitute.For <IBundleManifest>();
            _bundleManifestLoader.Load().Returns(Observable.Return(_bundleManifest));

            _fixture = new BundleLoader(_cachedLoader, _bundleManifestLoader);
        }