Exemplo n.º 1
0
 public Sender(FlagshipContext flagshipContext)
 {
     environmentId    = flagshipContext.EnvironmentId;
     exceptionHandler = flagshipContext.ExceptionHandler;
     logger           = flagshipContext.Logger;
     httpClient       = new HttpClient();
 }
Exemplo n.º 2
0
 public FlagshipVisitorService(FlagshipContext flagshipContext)
 {
     this.flagshipContext = flagshipContext;
     decisionManager      = flagshipContext.DecisionManager;
     sender           = flagshipContext.Sender;
     exceptionHandler = flagshipContext.ExceptionHandler;
     logger           = flagshipContext.Logger;
 }
Exemplo n.º 3
0
 public APIDecisionManager(FlagshipContext flagshipContext)
 {
     httpClient = new HttpClient
     {
         Timeout = flagshipContext.Options?.Timeout ?? DefaultTimeout
     };
     httpClient.DefaultRequestHeaders.Add("x-api-key", flagshipContext.ApiKey);
     environmentId = flagshipContext.EnvironmentId;
 }
Exemplo n.º 4
0
        public BucketingClient(FlagshipContext flagshipContext)
        {
            environmentId       = flagshipContext.EnvironmentId;
            logger              = flagshipContext.Logger;
            sender              = flagshipContext.Sender;
            httpClient          = new HttpClient();
            targetingMatch      = new TargetingMatch(logger);
            variationAllocation = new VariationAllocation(logger);

            var interval = flagshipContext.Options?.BucketingPollingInterval ?? DefaultPollingInterval;

            loadTimer = new Timer(async(object state) => await LoadConfig(), this, interval, interval);
            LoadConfig();
        }
Exemplo n.º 5
0
        public static IFlagshipVisitor Create(string environmentId, string apiKey, string visitorId, IDictionary <string, object> context, DecisionResponse mockResponse, HttpClient customClient = null)
        {
            var mockClient = new Mock <IDecisionManager>();

            mockClient.Setup(foo => foo.GetResponse(It.IsAny <DecisionRequest>())).Returns(Task.FromResult(mockResponse));

            var logger       = new DefaultLogger();
            var errorHandler = new DefaultExceptionHandler();

            var flagshipContext = new FlagshipContext(environmentId, apiKey);
            var sender          = new Sender(flagshipContext);

            if (customClient != null)
            {
                var senderClient = sender.GetType().GetField("httpClient", System.Reflection.BindingFlags.NonPublic
                                                             | System.Reflection.BindingFlags.Instance);
                senderClient.SetValue(sender, customClient);
            }

            var contextSender = flagshipContext.GetType().GetField("Sender", System.Reflection.BindingFlags.Public
                                                                   | System.Reflection.BindingFlags.Instance);

            contextSender.SetValue(flagshipContext, sender);

            var flagshipVisitorService = new FlagshipVisitorService(flagshipContext);
            var decisionManager        = flagshipVisitorService.GetType().GetField("decisionManager", System.Reflection.BindingFlags.NonPublic
                                                                                   | System.Reflection.BindingFlags.Instance);

            decisionManager.SetValue(flagshipVisitorService, mockClient.Object);

            var flagship     = new FlagshipClient(flagshipContext);
            var fsVisService = flagship.GetType().GetField("fsVisitorService", System.Reflection.BindingFlags.NonPublic
                                                           | System.Reflection.BindingFlags.Instance);

            fsVisService.SetValue(flagship, flagshipVisitorService);

            var flagshipVisitor = flagship.NewVisitor(visitorId, context);

            return(flagshipVisitor);
        }