예제 #1
0
 /// <summary>
 /// Initialization of mocking linq queries to sharepoint for objects of type T.
 /// </summary>
 /// <param name="enumerable">Return collection for query.</param>
 private static void InitializeShimLinq <T>(IEnumerable <T> enumerable) where T : ClientObject
 {
     ShimQueryable.SelectOf2IQueryableOfM0ExpressionOfFuncOfM0M1 <T, T>((a, b) => enumerable.AsQueryable());
     ShimClientObjectQueryableExtension.IncludeOf1IQueryableOfM0ExpressionOfFuncOfM0ObjectArray <T>((coll, incld) => coll);
     ShimClientRuntimeContext.AllInstances.LoadQueryOf1IQueryableOfM0 <T>((ctx, query) => query.AsEnumerable());
     ShimClientRuntimeContext.AllInstances.LoadOf1M0ExpressionOfFuncOfM0ObjectArray <T>((a, b, c) => { });
 }
        public void WhenGetJobIsCalledThenMediaServicesContextIsCreatedWithTheAccountProvided()
        {
            const string AccountName = "myAccount";
            const string AccountKey  = "myKey";

            var client = new AzureMediaServicesClient(AccountName, AccountKey);

            using (ShimsContext.Create())
            {
                string providedAccountName = null;
                string providedAccountKey  = null;

                var sampleJobs = new List <IJob>().AsQueryable();

                var collection = new ShimJobBaseCollection();
                collection.Bind(sampleJobs);

                ShimCloudMediaContext.ConstructorStringString = (context, accountName, accountKey) =>
                {
                    providedAccountName = accountName;
                    providedAccountKey  = accountKey;
                };

                ShimCloudMediaContext.AllInstances.JobsGet = context => collection;

                ShimQueryable.WhereOf1IQueryableOfM0ExpressionOfFuncOfM0Boolean <IJob>((jobs, predicate) => sampleJobs);

                client.GetJob("nb:cid:UUID:8131a85d-5999-555c-a30f-468cb087701c");

                Assert.AreEqual(AccountName, providedAccountName);
                Assert.AreEqual(AccountKey, providedAccountKey);
            }
        }
        public void WhenGetAssetsIsCalledThenMediaServicesContextIsCreatedWithTheAccountProvided()
        {
            const string AccountName = "myAccount";
            const string AccountKey  = "myKey";

            var client = new AzureMediaServicesClient(AccountName, AccountKey);

            using (ShimsContext.Create())
            {
                string providedAccountName = null;
                string providedAccountKey  = null;

                ShimCloudMediaContext.ConstructorStringString = (context, accountName, accountKey) =>
                {
                    providedAccountName = accountName;
                    providedAccountKey  = accountKey;
                };

                ShimQueryable.WhereOf1IQueryableOfM0ExpressionOfFuncOfM0Boolean <IAsset>((assets, predicate) => null);

                client.GetAssets(asset => asset.Name == "EZ");

                Assert.AreEqual(AccountName, providedAccountName);
                Assert.AreEqual(AccountKey, providedAccountKey);
            }
        }
        public void WhenGetAssetsIsCalledWithAPredicateThenAssetsCollectionIsFiltered()
        {
            var client = new AzureMediaServicesClient("myAccountName", "myAccountKey");

            using (ShimsContext.Create())
            {
                var asset1 = new StubIAsset {
                    NameGet = () => "EZ"
                };
                var asset2 = new StubIAsset {
                    NameGet = () => "VOD"
                };

                var sampleAssets = new List <IAsset> {
                    asset1, asset2
                };

                var collection = new StubAssetBaseCollection {
                    QueryableGet = sampleAssets.AsQueryable
                };

                Expression <Func <IAsset, bool> > filter = asset => asset.Name == "EZ";

                Expression <Func <IAsset, bool> > providedPredicate = null;

                ShimCloudMediaContext.ConstructorStringString = (context, accountName, accountKey) => { };
                ShimCloudMediaContext.AllInstances.AssetsGet  = context => collection;
                ShimQueryable.WhereOf1IQueryableOfM0ExpressionOfFuncOfM0Boolean <IAsset>((assets, predicate) =>
                {
                    Assert.AreEqual(2, assets.Count());

                    providedPredicate = predicate;

                    return(ShimsContext.ExecuteWithoutShims(() => assets.Where(predicate)));
                });

                var returnedAssets = client.GetAssets(filter);

                Assert.AreSame(filter, providedPredicate);
                Assert.AreEqual(1, returnedAssets.Count());
                Assert.AreEqual(asset1.NameGet(), returnedAssets.First().Name);
            }
        }