public void RetrieveDefinedFeaturesThrowsFeatureStoreFaultExceptionOnException() { IStorageContainer storageContainer = m_MockRepository.StrictMock <IStorageContainer>(); FeatureScope scope = FeatureScope.Create(Guid.NewGuid(), Guid.NewGuid()); using (m_MockRepository.Record()) { Expect.Call(storageContainer.Retrieve(scope)).Throw(new CheckFeatureStateException("Bad Mojo Exception")); m_MockRepository.ReplayAll(); FeatureStoreService featureStoreService = new FeatureStoreService(storageContainer); try { featureStoreService.RetrieveDefinedFeatures( RetrieveDefinedFeaturesRequest.Create( "UpdateFeatureStateThrowsFeatureStoreFaultExceptionOnException", scope)); Assert.Fail("Expecting FaultException<FeatureStoreFault>"); } catch (FaultException <FeatureStoreFault> e) { Console.WriteLine(e.Detail.Message); Console.WriteLine(e.Message); StringAssert.Contains(e.Detail.Message, "An exception occurred retrieving defined Features."); } m_MockRepository.VerifyAll(); } }
public void RetrieveDefinedFeaturesExceptionThrown() { string messageId = Guid.NewGuid().ToString(); Exception exception = m_MockRepository.StrictMock <Exception>(); RetrieveDefinedFeaturesRequest request = RetrieveDefinedFeaturesRequest.Create(messageId, FeatureScope.Create( Guid.NewGuid(), Guid.NewGuid())); IFeatureStore featureStore = new StandardFeatureStore(m_StorageContainer); using (m_MockRepository.Record()) { Expect.Call(m_StorageContainer.Retrieve(request.FeatureScope)).Throw(exception); m_MockRepository.ReplayAll(); try { featureStore.RetrieveDefinedFeatures(request); Assert.Fail("Expected FeatureCreationException"); } catch (RetrieveDefinedFeaturesException) { } m_MockRepository.VerifyAll(); } }
public void RetrieveFeaturesForOwnerId() { string messageId = Guid.NewGuid().ToString(); Guid ownerId = Guid.NewGuid(); IList <Feature> features = new List <Feature> { Feature.Create(1, ownerId, Guid.Empty, "Feature One"), Feature.Create(1, ownerId, Guid.NewGuid(), "Feature Two"), Feature.Create(1, ownerId, Guid.NewGuid(), "Feature Three") }; IFeatureStore featureStore = new StandardFeatureStore(m_StorageContainer); FeatureScope featureScope = FeatureScope.Create(ownerId, Guid.Empty); RetrieveDefinedFeaturesRequest request = RetrieveDefinedFeaturesRequest.Create(messageId, featureScope); using (m_MockRepository.Record()) { Expect.Call(m_StorageContainer.Retrieve(featureScope)).Return(features); m_MockRepository.ReplayAll(); RetrieveDefinedFeaturesResponse response = featureStore.RetrieveDefinedFeatures(request); Assert.AreEqual(request.Header.MessageId, response.Header.MessageId); foreach (Feature feature in response.Result) { Assert.AreEqual(ownerId, feature.OwnerId); } m_MockRepository.VerifyAll(); } }
public void Execute(IServiceMethodUiBridge serviceMethodUiBridge) { FeatureScope featureScope = BuildFeatureScope(serviceMethodUiBridge); try { RetrieveDefinedFeaturesRequest request = RetrieveDefinedFeaturesRequest.Create(MessageIdFactory.GenerateMessageId(), featureScope); IFeatureStoreServiceProxy featureStoreServiceProxy = new FeatureStoreServiceProxy(); RetrieveDefinedFeaturesResponse response = featureStoreServiceProxy.RetrieveDefinedFeatures(request); serviceMethodUiBridge.DisplayResults(BuildResultsRichText(request, response, GetType().Name)); } catch (Exception e) { serviceMethodUiBridge.DisplayResults(BuildExceptionRichText(e)); } }
private static RetrieveDefinedFeaturesRequest BuildRetrieveDefinedFeaturesRequestWithSavedFeature( string messageId) { Guid ownerGuid = Guid.NewGuid(); Guid space = Guid.NewGuid(); Feature[] features = new[] { Feature.Create(3, ownerGuid, space, "RetrieveDefinedFeaturesFeature3"), Feature.Create(4, ownerGuid, space, "RetrieveDefinedFeaturesFeature4"), Feature.Create(5, ownerGuid, space, "RetrieveDefinedFeaturesFeature5") }; foreach (Feature feature in features) { AddFeatureToStorage(feature.Name, feature); } return(RetrieveDefinedFeaturesRequest.Create(messageId, FeatureScope.Create(ownerGuid, space))); }
public void Execute(IServiceMethodUiBridge serviceMethodUiBridge) { m_ServiceMethodUiBridge = serviceMethodUiBridge; AsyncOperation asyncOperation = AsyncOperationManager.CreateOperation(m_AsyncKey); try { FeatureScope featureScope = BuildFeatureScope(serviceMethodUiBridge); RetrieveDefinedFeaturesRequest request = RetrieveDefinedFeaturesRequest.Create(MessageIdFactory.GenerateMessageId(), featureScope); IFeatureStoreServiceProxy featureStoreServiceProxy = new FeatureStoreServiceProxy(); featureStoreServiceProxy.BeginRetrieveDefinedFeatures( request, ar => { string rtfResults; try { RetrieveDefinedFeaturesResponse response = featureStoreServiceProxy.EndRetrieveDefinedFeatures(ar); rtfResults = BuildResultsRichText(request, response, GetType().Name); } catch (Exception e) { rtfResults = BuildExceptionRichText(e); } asyncOperation.PostOperationCompleted(HandleEndAsync, rtfResults); }, null); } catch (Exception e) { serviceMethodUiBridge.DisplayResults(BuildExceptionRichText(e)); } }
/// <summary> /// Writes all the features that have been defined in the service to the Console. /// </summary> private static void DumpStoredFeatures() { IFeatureStoreServiceProxy proxy = new FeatureStoreServiceProxy(); RetrieveDefinedFeaturesResponse response = proxy.RetrieveDefinedFeatures( RetrieveDefinedFeaturesRequest.Create( "DumpStoredFeatures", FeatureScope.Create(Guid.Empty, Guid.Empty))); foreach (Feature feature in response.Result) { Console.WriteLine( string.Format( CultureInfo.CurrentUICulture, "Id [{0}], OwnerOd [{1}], Space [{2}], Name [{3}], Enabled [{4}]", feature.Id, feature.OwnerId, feature.Space, feature.Name, feature.Enabled)); } }
/// <summary> /// Thread routine that calls the various service methods thus generating the performance counter data. /// </summary> /// <param name="stopper"> /// The stopper. /// </param> private void Runner(object stopper) { ManualResetEvent stopEvent = (ManualResetEvent)stopper; IFeatureStoreServiceProxy proxy = new FeatureStoreServiceProxy(); Action <int>[] calls = new Action <int>[] { v => proxy.CreateFeature(CreateFeatureRequest.Create( "CreateFeature lambda", Feature.Create(1, Guid.NewGuid(), Guid.NewGuid(), Thread.CurrentThread.ManagedThreadId.ToString()))), v => proxy.UpdateFeatureState( UpdateFeatureStateRequest.Create( "UpdateFeatureState lambda", CreateFeatureKey(v), !m_StandardFeatures[v].Enabled)), v => proxy.CheckFeatureState( CheckFeatureStateRequest.Create( "CheckFeatureState lambda", CreateFeatureKey(v))), v => proxy.RetrieveDefinedFeatures( RetrieveDefinedFeaturesRequest.Create( "RetrieveDefinedFeatures lambda", FeatureScope.Create(m_StandardFeatures[v].OwnerId, m_StandardFeatures[v].Space))) }; while (true) { int index = m_Random.Next(0, calls.Length); Console.WriteLine(@"Invoking lambda {0}", index); calls[index].Invoke(index); if (stopEvent.WaitOne(20)) { break; } } }
public void ExerciseFullInterface() { Debug.WriteLine("BEGIN: ExerciseFullInterface"); CacheSwappingStorageContainer cacheSwappingStorageContainer = new CacheSwappingStorageContainer(@".\ExerciseFullInterface_Storage.dat"); StandardFeatureStore standardFeatureStore = new StandardFeatureStore(cacheSwappingStorageContainer); /* -- CreateFeature -- */ CreateFeatureRequest createFeatureRequest1 = CreateFeatureRequest.Create( Guid.NewGuid().ToString(), Feature.Create( 1, Guid.NewGuid(), Guid.NewGuid(), "Feature One")); CreateFeatureRequest createFeatureRequest2 = CreateFeatureRequest.Create( Guid.NewGuid().ToString(), Feature.Create( 2, Guid.NewGuid(), Guid.NewGuid(), "Feature Two")); CreateFeatureRequest createFeatureRequest3 = CreateFeatureRequest.Create( Guid.NewGuid().ToString(), Feature.Create( 3, Guid.NewGuid(), Guid.NewGuid(), "Feature Three")); CreateFeatureResponse createFeatureResponse = standardFeatureStore.CreateFeature(createFeatureRequest1); AssertCreateFeatureResponse(createFeatureRequest1, createFeatureResponse); createFeatureResponse = standardFeatureStore.CreateFeature(createFeatureRequest2); AssertCreateFeatureResponse(createFeatureRequest2, createFeatureResponse); createFeatureResponse = standardFeatureStore.CreateFeature(createFeatureRequest3); AssertCreateFeatureResponse(createFeatureRequest3, createFeatureResponse); AssertPerformanceCountersRecorded(PerformanceCounterReporterType.CreateFeature, false, 3); /* -- CheckFeatureState -- */ CheckFeatureStateRequest checkFeatureStateRequest1 = CheckFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest1.Feature.Id, createFeatureRequest1.Feature.OwnerId, createFeatureRequest1.Feature.Space)); CheckFeatureStateResponse checkFeatureStateResponse = standardFeatureStore.CheckFeatureState(checkFeatureStateRequest1); AssertCheckFeatureStateResponse(checkFeatureStateRequest1, checkFeatureStateResponse); CheckFeatureStateRequest checkFeatureStateRequest2 = CheckFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest2.Feature.Id, createFeatureRequest2.Feature.OwnerId, createFeatureRequest2.Feature.Space)); checkFeatureStateResponse = standardFeatureStore.CheckFeatureState(checkFeatureStateRequest2); AssertCheckFeatureStateResponse(checkFeatureStateRequest2, checkFeatureStateResponse); CheckFeatureStateRequest checkFeatureStateRequest3 = CheckFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest3.Feature.Id, createFeatureRequest3.Feature.OwnerId, createFeatureRequest3.Feature.Space)); checkFeatureStateResponse = standardFeatureStore.CheckFeatureState(checkFeatureStateRequest3); AssertCheckFeatureStateResponse(checkFeatureStateRequest3, checkFeatureStateResponse); AssertPerformanceCountersRecorded(PerformanceCounterReporterType.CheckFeatureState, false, 3); /* -- UpdateFeatureState -- */ UpdateFeatureStateRequest updateFeatureStateRequest1 = UpdateFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest1.Feature.Id, createFeatureRequest1.Feature.OwnerId, createFeatureRequest1.Feature.Space), true); UpdateFeatureStateResponse updateFeatureStateResponse = standardFeatureStore.UpdateFeatureState(updateFeatureStateRequest1); Assert.IsTrue(updateFeatureStateResponse.Result.Enabled); UpdateFeatureStateRequest updateFeatureStateRequest2 = UpdateFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest2.Feature.Id, createFeatureRequest2.Feature.OwnerId, createFeatureRequest2.Feature.Space), true); updateFeatureStateResponse = standardFeatureStore.UpdateFeatureState(updateFeatureStateRequest2); Assert.IsTrue(updateFeatureStateResponse.Result.Enabled); UpdateFeatureStateRequest updateFeatureStateRequest3 = UpdateFeatureStateRequest.Create( Guid.NewGuid().ToString(), FeatureKey.Create( createFeatureRequest3.Feature.Id, createFeatureRequest3.Feature.OwnerId, createFeatureRequest3.Feature.Space), true); updateFeatureStateResponse = standardFeatureStore.UpdateFeatureState(updateFeatureStateRequest3); Assert.IsTrue(updateFeatureStateResponse.Result.Enabled); AssertPerformanceCountersRecorded(PerformanceCounterReporterType.UpdateFeatureState, false, 3); /* -- RetrieveDefinedFeatures -- */ RetrieveDefinedFeaturesRequest retrieveDefinedFeaturesRequest = RetrieveDefinedFeaturesRequest.Create( Guid.NewGuid().ToString(), FeatureScope.Create(createFeatureRequest1.Feature.OwnerId, createFeatureRequest1.Feature.Space)); RetrieveDefinedFeaturesResponse retrieveDefinedFeaturesResponse = standardFeatureStore.RetrieveDefinedFeatures(retrieveDefinedFeaturesRequest); Assert.IsNotNull(retrieveDefinedFeaturesResponse.Result); Assert.IsTrue(retrieveDefinedFeaturesResponse.Result.GetEnumerator().MoveNext()); AssertPerformanceCountersRecorded(PerformanceCounterReporterType.RetrieveDefinedFeatures, true, 1); Debug.WriteLine("END: ExerciseFullInterface"); }