public void TestLocatorDeleteRetry() { var dataContextMock = new Mock <IMediaDataServiceContext>(); int exceptionCount = 2; var locator = new LocatorData { Name = "testData", Type = (int)LocatorType.OnDemandOrigin }; var fakeResponse = new TestMediaDataServiceResponse { AsyncState = locator }; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); dataContextMock.Setup((ctxt) => ctxt.AttachTo("Locators", locator)); dataContextMock.Setup((ctxt) => ctxt.DeleteObject(locator)); dataContextMock.Setup((ctxt) => ctxt .SaveChangesAsync(locator)) .Returns(() => Task.Factory.StartNew <IMediaDataServiceResponse>(() => { if (--exceptionCount > 0) { throw fakeException; } return(fakeResponse); })); // Cannot mock DataServiceQuery. Throw artificial exception to mark pass through saving changes. string artificialExceptionMessage = "artificialException"; dataContextMock.Setup((ctxt) => ctxt.CreateQuery <IAsset, AssetData>("Assets")).Throws(new Exception(artificialExceptionMessage)); _mediaContext.MediaServicesClassFactory = new TestMediaServicesClassFactory(dataContextMock.Object); locator.SetMediaContext(_mediaContext); try { locator.Delete(); } catch (Exception x) { Assert.AreEqual(artificialExceptionMessage, x.Message); } Assert.AreEqual(0, exceptionCount); }
public void TestLocatorUpdateRetry() { var dataContextMock = new Mock <IMediaDataServiceContext>(); int exceptionCount = 2; var locator = new LocatorData { Name = "testData", Type = (int)LocatorType.OnDemandOrigin }; var fakeResponse = new TestMediaDataServiceResponse { AsyncState = locator }; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); dataContextMock.Setup((ctxt) => ctxt.AttachTo("Locators", locator)); dataContextMock.Setup((ctxt) => ctxt.UpdateObject(locator)); dataContextMock.Setup((ctxt) => ctxt .SaveChangesAsync(locator)) .Returns(() => Task.Factory.StartNew <IMediaDataServiceResponse>(() => { if (--exceptionCount > 0) { throw fakeException; } return(fakeResponse); })); _mediaContext.MediaServicesClassFactory = new TestMediaServicesClassFactory(dataContextMock.Object); locator.SetMediaContext(_mediaContext); locator.Update(DateTime.Now); Assert.AreEqual(0, exceptionCount); }
public void TestLocatorUpdateRetry() { var dataContextMock = new Mock<IMediaDataServiceContext>(); int exceptionCount = 2; var locator = new LocatorData { Name = "testData", Type = (int)LocatorType.OnDemandOrigin }; var fakeResponse = new TestMediaDataServiceResponse { AsyncState = locator }; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); dataContextMock.Setup((ctxt) => ctxt.AttachTo("Locators", locator)); dataContextMock.Setup((ctxt) => ctxt.UpdateObject(locator)); dataContextMock.Setup((ctxt) => ctxt .SaveChangesAsync(locator)) .Returns(() => Task.Factory.StartNew<IMediaDataServiceResponse>(() => { if (--exceptionCount > 0) throw fakeException; return fakeResponse; })); _mediaContext.MediaServicesClassFactory = new TestMediaServicesClassFactory(dataContextMock.Object); locator.SetMediaContext(_mediaContext); locator.Update(DateTime.Now); Assert.AreEqual(0, exceptionCount); }
public void TestLocatorDeleteRetry() { var dataContextMock = new Mock<IMediaDataServiceContext>(); int exceptionCount = 2; var locator = new LocatorData { Name = "testData", Type = (int)LocatorType.OnDemandOrigin }; var fakeResponse = new TestMediaDataServiceResponse { AsyncState = locator }; var fakeException = new WebException("test", WebExceptionStatus.ConnectionClosed); dataContextMock.Setup((ctxt) => ctxt.AttachTo("Locators", locator)); dataContextMock.Setup((ctxt) => ctxt.DeleteObject(locator)); dataContextMock.Setup((ctxt) => ctxt .SaveChangesAsync(locator)) .Returns(() => Task.Factory.StartNew<IMediaDataServiceResponse>(() => { if (--exceptionCount > 0) throw fakeException; return fakeResponse; })); // Cannot mock DataServiceQuery. Throw artificial exception to mark pass through saving changes. string artificialExceptionMessage = "artificialException"; dataContextMock.Setup((ctxt) => ctxt.CreateQuery<IAsset, AssetData>("Assets")).Throws(new Exception(artificialExceptionMessage)); _mediaContext.MediaServicesClassFactory = new TestMediaServicesClassFactory(dataContextMock.Object); locator.SetMediaContext(_mediaContext); try { locator.Delete(); } catch (Exception x) { Assert.AreEqual(artificialExceptionMessage, x.Message); } Assert.AreEqual(0, exceptionCount); }
public void InitilizeStubData() { string assetId = "nb:Id:" + Guid.NewGuid(); StorageAccountData storageAccountData = new StorageAccountData { IsDefault = true, Name = "test storage", }; _persistedChanges.Add(StorageAccountBaseCollection.EntitySet, new List <StorageAccountData> { storageAccountData }); AssetData assetData = new AssetData() { Id = assetId, AlternateId = String.Empty, Created = DateTime.UtcNow, LastModified = DateTime.UtcNow, Name = "Mock Asset", Options = (int)AssetCreationOptions.None, }; assetData.SetMediaContext(_mediaContextBase); _persistedChanges.Add(AssetCollection.AssetSet, new List <AssetData> { assetData }); string accessPolicyId = Guid.NewGuid().ToString(); AccessPolicyData accessPolicyData = new AccessPolicyData() { Id = accessPolicyId, Name = "Mock AccessPolicy", Created = DateTime.UtcNow.AddDays(-1), DurationInMinutes = 10000, LastModified = DateTime.UtcNow, Permissions = (int)AccessPermissions.Read }; accessPolicyData.SetMediaContext(_mediaContextBase); _persistedChanges.Add(AccessPolicyBaseCollection.AccessPolicySet, new List <AccessPolicyData> { accessPolicyData }); LocatorData locatorData = new LocatorData() { Id = Guid.NewGuid().ToString(), AssetId = assetId, Name = "Mock locator", AccessPolicyId = accessPolicyId, BaseUri = "http://" }; locatorData.SetMediaContext(_mediaContextBase); _persistedChanges.Add(LocatorBaseCollection.LocatorSet, new List <LocatorData> { locatorData }); _persistedChanges.Add(AssetFileCollection.FileSet, new List <AssetFileData> { new AssetFileData() { Id = Guid.NewGuid().ToString(), Created = DateTime.UtcNow, Name = "Mock File", ParentAssetId = assetId } }); _persistedChanges.Add(MediaProcessorBaseCollection.MediaProcessorSet, new List <MediaProcessorData> { new MediaProcessorData() { Id = Guid.NewGuid().ToString(), Name = "Mock Processor", Version = "1", Vendor = "mock" } }); _persistedChanges.Add(JobBaseCollection.JobSet, new List <JobData> { new JobData() { Id = Guid.NewGuid().ToString(), Name = "Mock Job", } }); }