コード例 #1
0
        public async Task Two_Records_Are_Successfully_Created()
        {
            DNSRecordCollection dnsRecords = new DNSRecordCollection(new[]
            {
                new DNSRecord
                {
                    Data = "100.100.100.100",
                    TTL  = 1800,
                    Type = DNSRecordType.A
                },
                new DNSRecord
                {
                    Data = "100.100.100.101",
                    TTL  = 1800,
                    Type = DNSRecordType.A
                },
            });

            IDigitalOceanClient           client  = A.Fake <IDigitalOceanClient>();
            IDigitalOceanDNSRecordCreator creater = new DigitalOceanDNSRecordCreator(client, _mappingHelper.Mapper);

            Result result = await creater.CreateAsync(string.Empty, dnsRecords, string.Empty, CancellationToken.None);

            A.CallTo(() => client.CreateDNSRecordAsync(A <string> .Ignored, A <DigitalOceanCreateDomainRecordRequest> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)).MustHaveHappenedTwiceExactly();
            Assert.True(result.IsSuccess);
        }
コード例 #2
0
 public ChangePurposeStateHandler(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
     _storageService     = storageService;
 }
コード例 #3
0
 public RemoveDropletsStateHandler(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
     _storageService     = storageService;
 }
コード例 #4
0
 public AddOutboundRuleStateHandler(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
     _storageService     = storageService;
 }
コード例 #5
0
 public RenameCommand(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
     _storageService     = storageService;
 }
コード例 #6
0
 public CreateSnapshotStateHandler(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
     _storageService     = storageService;
 }
コード例 #7
0
 public GetFirewallsCommand(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService,
     FirewallPaginatorService firewallPaginatorService)
 {
     _telegramBotClient        = telegramBotClient;
     _digitalOceanClient       = digitalOceanClient;
     _storageService           = storageService;
     _firewallPaginatorService = firewallPaginatorService;
 }
コード例 #8
0
 public GetProjectsCommand(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService,
     ProjectPaginatorService projectPaginatorService)
 {
     _telegramBotClient       = telegramBotClient;
     _digitalOceanClient      = digitalOceanClient;
     _storageService          = storageService;
     _projectPaginatorService = projectPaginatorService;
 }
コード例 #9
0
 public GetDropletsCommand(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService,
     DropletPaginatorService dropletPaginatorService)
 {
     _telegramBotClient       = telegramBotClient;
     _digitalOceanClient      = digitalOceanClient;
     _storageService          = storageService;
     _dropletPaginatorService = dropletPaginatorService;
 }
コード例 #10
0
        public async Task Record_Retrieval_Failed()
        {
            DigitalOceanDomain           domain = new DigitalOceanDomain();
            IDigitalOceanClient          client = A.Fake <IDigitalOceanClient>();
            IDigitalOceanDNSRecordReader reader = new DigitalOceanDNSRecordReader(client, _mappingHelper.Mapper);

            A.CallTo(() => client.GetDNSRecordsAsync(A <DigitalOceanDomain> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)).Returns(Result.Fail("Error"));

            Result <DNSRecordCollection> result = await reader.ReadAsync(domain, string.Empty, CancellationToken.None);

            Assert.True(result.IsFailed);
        }
コード例 #11
0
 public CreateNewDropletStateHandler(
     ITelegramBotClient telegramBotClient,
     IDigitalOceanClient digitalOceanClient,
     StorageService storageService,
     ImagePaginatorService imagePaginatorService,
     RegionPaginatorService regionPaginatorService,
     SizePaginatorService sizePaginatorService)
 {
     _telegramBotClient      = telegramBotClient;
     _digitalOceanClient     = digitalOceanClient;
     _storageService         = storageService;
     _imagePaginatorService  = imagePaginatorService;
     _regionPaginatorService = regionPaginatorService;
     _sizePaginatorService   = sizePaginatorService;
 }
コード例 #12
0
        public async Task Record_Is_Successfully_Retrieved()
        {
            string        ipAddress = "100.100.100.100";
            string        name      = "test";
            int           TTL       = 1800;
            DNSRecordType type      = DNSRecordType.A;

            DigitalOceanDomain domain = new DigitalOceanDomain();
            DigitalOceanGetDomainRecordsResponse clientResponse = new DigitalOceanGetDomainRecordsResponse
            {
                DomainRecords = new List <DigitalOceanGetDomainRecordResponse>
                {
                    new DigitalOceanGetDomainRecordResponse
                    {
                        Data = ipAddress,
                        Name = name,
                        Ttl  = TTL,
                        Type = type
                    }
                }
            };
            Result <DigitalOceanGetDomainRecordsResponse> clientResponeResult = Result.Ok(clientResponse);

            IDigitalOceanClient          client = A.Fake <IDigitalOceanClient>();
            IDigitalOceanDNSRecordReader reader = new DigitalOceanDNSRecordReader(client, _mappingHelper.Mapper);

            A.CallTo(() => client.GetDNSRecordsAsync(A <DigitalOceanDomain> .Ignored, A <string> .Ignored, A <CancellationToken> .Ignored)).Returns(clientResponeResult);

            Result <DNSRecordCollection> result = await reader.ReadAsync(domain, string.Empty, CancellationToken.None);

            Assert.True(result.IsSuccess);

            DNSRecordCollection dnsRecords = result.Value;

            Assert.True(dnsRecords.Count == 1);

            DNSRecord dnsRecord = result.Value.First();

            Assert.Equal(dnsRecord.Data, ipAddress);
            Assert.Equal(dnsRecord.Name, name);
            Assert.Equal(dnsRecord.TTL, TTL);
            Assert.Equal(dnsRecord.Type, type);
        }
コード例 #13
0
 public DigitalOceanDNSRecordCreator(IDigitalOceanClient digitalOceanClient, IMapper mapper)
 {
     _digitalOceanClient = digitalOceanClient;
     _mapper             = mapper;
 }
コード例 #14
0
        private static async Task <bool> CheckActionStatus(int dropletId, int actionId, IDigitalOceanClient digitalOceanClient, CancellationToken cancellationToken)
        {
            while (true)
            {
                var action = await digitalOceanClient.DropletActions.GetDropletAction(dropletId, actionId);

                switch (action.Status)
                {
                case "completed":
                    return(true);

                case "errored":
                    return(false);

                default:
                    await Task.Delay(3000);

                    cancellationToken.ThrowIfCancellationRequested();
                    break;
                }
            }
        }
コード例 #15
0
 public GetAccountCommand(ITelegramBotClient telegramBotClient, IDigitalOceanClient digitalOceanClient)
 {
     _telegramBotClient  = telegramBotClient;
     _digitalOceanClient = digitalOceanClient;
 }
コード例 #16
0
 private static async Task WaitForAction(IDigitalOceanClient client, int actionId) {
     while (true) {
         var @event = await client.Actions.Get(actionId);
         if (@event.CompletedAt != null) {
             break;
         }
         Thread.Sleep(TimeSpan.FromSeconds(5));
     }
 }
コード例 #17
0
 public DigitalOceanDNSRecordReader(IDigitalOceanClient client, IMapper mapper)
 {
     _client = client;
     _mapper = mapper;
 }
コード例 #18
0
 public DigitalOcean(DigitalOceanOptions options, LookupClientProvider dnsClient, ILogService log, ISettingsService settings) : base(dnsClient, log, settings)
 {
     _doClient = new DigitalOceanClient(options.ApiToken.Value);
 }