public async Task WhenGettingAllSignalsHappyFlow() { this.smartSignalsRepository.Setup(repository => repository.ReadAllSignalsManifestsAsync(It.IsAny <CancellationToken>())) .ReturnsAsync(() => new List <SmartSignalManifest>() { new SmartSignalManifest("someId", "someName", "someDescription", Version.Parse("1.0"), "someAssemblyName", "someClassName", new List <ResourceType> { ResourceType.ResourceGroup }, new List <int> { 60 }) }); ListSmartSignalsResponse response = await this.signalsLogic.GetAllSmartSignalsAsync(CancellationToken.None); Assert.AreEqual(1, response.Signals.Count); Assert.AreEqual("someId", response.Signals.First().Id); Assert.AreEqual("someName", response.Signals.First().Name); }
public static async Task <HttpResponseMessage> GetAllSmartSignals([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "signal")] HttpRequestMessage req, TraceWriter log, CancellationToken cancellationToken) { using (IUnityContainer childContainer = Container.CreateChildContainer().WithTracer(log, true)) { ITracer tracer = childContainer.Resolve <ITracer>(); var signalApi = childContainer.Resolve <ISignalApi>(); var authorizationManagementClient = childContainer.Resolve <IAuthorizationManagementClient>(); try { // Check authorization bool isAuthorized = await authorizationManagementClient.IsAuthorizedAsync(req, cancellationToken); if (!isAuthorized) { return(req.CreateErrorResponse(HttpStatusCode.Forbidden, "The client is not authorized to perform this action")); } ListSmartSignalsResponse smartSignals = await signalApi.GetAllSmartSignalsAsync(cancellationToken); return(req.CreateResponse(smartSignals)); } catch (SmartSignalsManagementApiException e) { tracer.TraceError($"Failed to get smart signals due to managed exception: {e}"); return(req.CreateErrorResponse(e.StatusCode, "Failed to get smart signals", e)); } catch (Exception e) { tracer.TraceError($"Failed to get smart signals due to un-managed exception: {e}"); return(req.CreateErrorResponse(HttpStatusCode.InternalServerError, "Failed to get smart signals", e)); } } }