예제 #1
0
    public static async Task CreateTopic(
        TopicName topicName,
        EmulatorDetection emulatorDetection,
        CancellationToken cancellationToken
        )
    {
        var topicString = topicName.ToString();

        var publisherServiceApiClient =
            await new PublisherServiceApiClientBuilder {
            EmulatorDetection = emulatorDetection
        }
        .BuildAsync(cancellationToken)
        .NoContext();

        Log.Info("Checking topic", topicString);

        try {
            await publisherServiceApiClient.GetTopicAsync(topicName).NoContext();

            Log.Info("Topic exists", topicString);
        }
        catch (RpcException e) when(e.Status.StatusCode == StatusCode.NotFound)
        {
            Log.Info("Topic doesn't exist", topicString);
            await publisherServiceApiClient.CreateTopicAsync(topicName).NoContext();

            Log.Info("Created topic", topicString);
        }
    }
 private ClientCreationSettings(
     int?clientCount,
     PublisherServiceApiSettings publisherServiceApiSettings,
     ChannelCredentials credentials,
     string serviceEndpoint,
     EmulatorDetection emulatorDetection)
 {
     ClientCount = clientCount;
     PublisherServiceApiSettings = publisherServiceApiSettings;
     Credentials       = credentials;
     ServiceEndpoint   = serviceEndpoint;
     EmulatorDetection = emulatorDetection;
 }
예제 #3
0
    public static async Task CreateSubscription(
        SubscriptionName subscriptionName,
        TopicName topicName,
        Action <Subscription>?configureSubscription,
        EmulatorDetection emulatorDetection,
        CancellationToken cancellationToken
        )
    {
        var subName = subscriptionName.ToString();

        var subscriberServiceApiClient =
            await new SubscriberServiceApiClientBuilder {
            EmulatorDetection = emulatorDetection
        }
        .BuildAsync(cancellationToken)
        .NoContext();

        Log.Info("Checking subscription for topic", subName, topicName.ToString());

        try {
            await subscriberServiceApiClient.GetSubscriptionAsync(subscriptionName);

            Log.Info("Subscription exists", subName);
        }
        catch
        (RpcException e) when(e.Status.StatusCode == StatusCode.NotFound)
        {
            Log.Info("Subscription doesn't exist", subName);

            var subscriptionRequest = new Subscription {
                AckDeadlineSeconds = 60
            };

            configureSubscription?.Invoke(subscriptionRequest);
            subscriptionRequest.SubscriptionName = subscriptionName;
            subscriptionRequest.TopicAsTopicName = topicName;

            await subscriberServiceApiClient.CreateSubscriptionAsync(
                subscriptionRequest
                )
            .NoContext();

            Log.Info("Created subscription", subName);
        }
    }
 /// <summary>
 /// Creates a new instance of this type with the specified emulator detection value.
 /// </summary>
 /// <param name="emulatorDetection">Determines how and whether to detect the emulator.</param>
 /// <returns>The new instance</returns>
 public ClientCreationSettings WithEmulatorDetection(EmulatorDetection emulatorDetection)
 {
     GaxPreconditions.CheckEnumValue(emulatorDetection, nameof(emulatorDetection));
     return(new ClientCreationSettings(ClientCount, PublisherServiceApiSettings, Credentials, ServiceEndpoint, emulatorDetection));
 }
 internal FakeBuilder(EmulatorDetection detection) =>
예제 #6
0
 internal FakeBuilder(EmulatorDetection detection) : base(TestServiceMetadata.TestService) =>