private void ExecuteInternal() { try { WiFiDirectTestLogger.Log("Beginning Publish/Discover scenario"); // Do all publications foreach (var publishParams in publishDiscoveryParameters.PublishParameters) { var publishScenario = new ServicesPublishScenario(advertiserTestController, publishParams); ServicesPublishScenarioResult publishResult = publishScenario.Execute(); publishResults.Add(publishResult); if (!publishResult.ScenarioSucceeded) { throw new Exception("Publication failed!"); } } // Do all discoveries foreach (var discoveryPreParams in publishDiscoveryParameters.DiscoveryParameters) { // Need to translate indices to handles List <WFDSvcWrapperHandle> advertisersToMatch = new List <WFDSvcWrapperHandle>(); foreach (int i in discoveryPreParams.AdvertisersToMatchIndices) { if (i > publishResults.Count || i < 0) { throw new Exception("Bad discovery parameters! Index out of range"); } advertisersToMatch.Add(publishResults[i].AdvertiserHandle); } ServicesDiscoveryParameters discoveryParams = new ServicesDiscoveryParameters( discoveryPreParams.Parameters.Query, discoveryPreParams.Parameters.ExpectedMatchCount, advertisersToMatch, discoveryPreParams.Parameters.Type, discoveryPreParams.Parameters.ServiceInfoRequest, discoveryPreParams.Parameters.AdvertiserServiceInfoMatch ); var discoveryScenario = new ServicesDiscoveryScenario(discoveryTestController, advertiserTestController, discoveryParams); ServicesDiscoveryScenarioResult discoveryResult = discoveryScenario.Execute(); discoveryResults.Add(discoveryResult); if (!discoveryResult.ScenarioSucceeded) { throw new Exception("Discovery failed!"); } } succeeded = true; } catch (Exception e) { WiFiDirectTestLogger.Error("Caught exception while executing service publish/discovery scenario: {0}", e); } }
WFDSvcWrapperHandle ExecutePublishScenario(ServicesPublishParameters publishParams) { ServicesPublishScenario publishScenario = new ServicesPublishScenario(remoteWFDController, publishParams); ServicesPublishScenarioResult publishScenarioResult = publishScenario.Execute(); Verify.IsTrue(publishScenarioResult.ScenarioSucceeded); return(publishScenarioResult.AdvertiserHandle); }