示例#1
0
        static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage: dotnet PerfomanceTest.dll {pathToFile}");
                Console.WriteLine("Example: dotnet PerfomanceTest.dll ..\\..\\..\\..\\data\\events.bin");
                return;
            }

            var eventsApi = new ApiFacade
            {
                ProgressHandler = new ConsoleProgress()
            };

            var container = eventsApi.LoadEventsFromFileAsync(args[0], LoadStrategyType.LoadEventsForChart)
                            .GetAwaiter()
                            .GetResult();

            Console.WriteLine();

            Bucket lastBucket     = container.GetLastBucket();
            long   startTimestamp = container.FirstTimestamp,
                   endTimestamp   = (lastBucket?.GetAbsoluteTimeForEvent(lastBucket.GetLastEvent()) ?? 0) + 1;


            RunPerfomanceTests(
                container,
                startTimestamp,
                //startTimestamp + 400 * 1000,
                endTimestamp,
                //new[] { 10000L }
                container.GetPreferredSegmentSizes(startTimestamp, endTimestamp, 800).Select(s => s.RequestedValue).Distinct().ToArray()
                );
        }
        private async void LoadBtn_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var apiFacade = new ApiFacade();
                apiFacade.ProgressHandler = new Progress <int>(val =>
                {
                    LoadProgress.Value = val;
                });
                LoadProgress.Visibility = Visibility.Visible;
                LoadBtn.IsEnabled       = false;

                var bucketContainer = await apiFacade.LoadEventsFromFileAsync(SelectiFilePath.Text, LoadStrategyType.LoadEventsForChart);

                var chartWindow = new ChartWindow(bucketContainer);
                chartWindow.Owner = this;
                Visibility        = Visibility.Hidden;

                chartWindow.ShowDialog();
            }
            catch (Exception exc)
            {
                ShorExceptionMessageBox(exc);
            }

            Visibility = Visibility.Visible;
            ResetControls();
        }
示例#3
0
 public async void Register()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.Register("+79166728879");
     Assert.AreNotEqual(result.ErrorCode,0);
 }
示例#4
0
 public async void GetPhones()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.TryAuth("+79166728879");
     Assert.IsFalse(result.IsRegistered);
 }
示例#5
0
 public async void RegisterAndUnregisterPhone()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.RegisterPhone(new Device() { ImageUrl = "", Name = "Создано тестом", Platform = "test", Guid = "c1489e16-235f-4c45-a082-706d33360021" });
     DeletePhone();
 }
示例#6
0
 public async void GetUsers()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.GetUsers();
     Assert.Greater(result.Count, 0);
 }
示例#7
0
 public async void DeletePhone()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.DeletePhone(new Device() { Guid = "c1489e16-235f-4c45-a082-706d33360021" });
     Assert.IsNull(result);
 }
示例#8
0
        public void Test02()
        {
            // arrange
            var cm = Isolate.Fake.AllInstances <CacheManager>(Members.ReturnRecursiveFakes, ConstructorWillBe.Called);

            Isolate.WhenCalled(() => cm.KeyExists("teams_data"))
            .WillReturn(true);

            Isolate.WhenCalled(() => cm.GetData("teams_data"))
            .WillReturn(new List <Team> {
                new Team(999, "tigers")
            });

            // act
            var         api    = new ApiFacade();
            List <Team> result = api.GetTeams();

            // assert
            Assert.AreEqual(1, result.Count);

            int times = Isolate.Verify.GetTimesCalled(() => cm.KeyExists("teams_data"));

            Assert.AreEqual(1, times);

            int timesGetData = Isolate.Verify.GetTimesCalled(() => cm.GetData("teams_data"));

            Assert.AreEqual(1, timesGetData);
        }
示例#9
0
 public async void GetAllBorrowsByDeviceId()
 {
     var apiSettings = new FakeApiSettings();
     var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
     var result = await facade.GetBorrows("331f65f6-fbc6-40bc-b16f-35b49840441b");
     Assert.IsNotNull(result);
 }
示例#10
0
        public async void Register()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.Register("+79166728879");

            Assert.AreNotEqual(result.ErrorCode, 0);
        }
示例#11
0
        public async void Recover()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.Recover("+79166728879");

            Assert.IsNotNull(result);
        }
示例#12
0
        public async void GetBestTest()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.GetBestPosts(5, DateTime.Now);

            Assert.Greater(result.Count, 0);
        }
示例#13
0
        public async void GetPhones()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.TryAuth("+79166728879");

            Assert.IsFalse(result.IsRegistered);
        }
示例#14
0
 private void InitialApexApi()
 {
     this._apexApi = ApiFacade.GetInstance();
     this._apexApi.Login(
         GetConfigAccountPwd("ApexAccount"),
         GetConfigAccountPwd("ApexPwd"));
     PostMsg("寶碩下單API登入完成...");
 }
示例#15
0
        public async void GetPhoneWhichNotExist()
        {
            var apiSettings = new FakeApiSettings();
            var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);

            var result = await facade.GetPhone("teasattat");
            Assert.IsNull(result);
        }
示例#16
0
        public async void GetPosts()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.GetPosts(0, 10);

            Assert.AreEqual(result.Posts.Count, 10);
        }
示例#17
0
        private void RunTest(string fileName)
        {
            var apiFacade = new ApiFacade();
            //apiFacade.ProgressHandler = new ConsoleProgress();

            var containerWithoutDensityHints = apiFacade.LoadEventsFromFileAsync(fileName, LoadStrategyType.LoadOnlyEvents)
                                               .GetAwaiter()
                                               .GetResult();

            var containerWithDensityHints = apiFacade.LoadEventsFromFileAsync(fileName, LoadStrategyType.LoadEventsForChart)
                                            .GetAwaiter()
                                            .GetResult();

            Assert.Equal(containerWithoutDensityHints.FirstTimestamp, containerWithDensityHints.FirstTimestamp);
            Assert.Equal(containerWithoutDensityHints.LastTimestamp, containerWithDensityHints.LastTimestamp);
            Assert.Equal(containerWithoutDensityHints.Buckets.Length, containerWithDensityHints.Buckets.Length);

            long firstTimestamp = containerWithoutDensityHints.FirstTimestamp,
                 lastTimestamp  = containerWithoutDensityHints.LastTimestamp;

            var assertionFailedList = new List <AssertionInfo>();

            foreach (var segmentSize in containerWithoutDensityHints.GetPreferredSegmentSizes(firstTimestamp, lastTimestamp, 60))
            {
                long tStart = firstTimestamp, tEnd = Math.Min(firstTimestamp + segmentSize.RequestedValue * 10000, lastTimestamp);

                double[] densitiesWithoutHints = containerWithoutDensityHints.GetDensities(tStart, tEnd, segmentSize.RequestedValue);
                double[] densitiesWithHints = containerWithDensityHints.GetDensities(tStart, tEnd, segmentSize.RequestedValue);

                Assert.Equal(densitiesWithoutHints.Length, densitiesWithHints.Length);

                for (var i = 0; i < densitiesWithoutHints.Length; i++)
                {
                    try
                    {
                        Assert.Equal(densitiesWithoutHints[i], densitiesWithHints[i], 10);
                    }
                    catch (EqualException)
                    {
                        assertionFailedList.Add(new AssertionInfo
                        {
                            Expected    = densitiesWithoutHints[i],
                            Actual      = densitiesWithHints[i],
                            Index       = i,
                            SegmentSize = segmentSize.RequestedValue
                        });
                    }
                }
            }

            if (assertionFailedList.Count > 0)
            {
                throw new DensitiesEqualityException(assertionFailedList);
            }
        }
示例#18
0
        public async void Register()
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);

            try
            {
                var result = await facade.Register("+79166728879");
            }
            catch (Exception e)
            {
                Assert.AreEqual(e.Message, "User exist");
            }
        }
示例#19
0
        public VerifyService(string accountId, string accountName, string apiKey, Manager manager, IUser requestor, UserStrings strings, IMessageChannel channel)
        {
            AccoutId    = accountId;
            AccountName = accountName;
            APIKey      = apiKey;
            Requestor   = requestor;
            Channel     = channel;
            Manager     = manager;

            this.strings = strings;

            API = new ApiFacade(APIKey);

            HasValidCharacter = false;
        }
示例#20
0
  public async void Auth(string phone,string password,bool isCorrectPassword)
  {
      var apiSettings = new FakeApiSettings();
      var facade = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
      var result = await facade.Auth(phone,password);
      if (isCorrectPassword)
      {
          Assert.AreEqual(result.ErrorCode, 0);
      }
      else
      {
          Assert.AreNotEqual(result.ErrorCode, 0);
      }
 
  }
示例#21
0
        public async void Auth(string phone, string password, bool isCorrectPassword)
        {
            var apiSettings = new FakeApiSettings();
            var facade      = new ApiFacade(new ApiExecuter(apiSettings), apiSettings);
            var result      = await facade.Auth(phone, password);

            if (isCorrectPassword)
            {
                Assert.AreEqual(result.ErrorCode, 0);
            }
            else
            {
                Assert.AreNotEqual(result.ErrorCode, 0);
            }
        }
示例#22
0
        static double CalculateAverageDensityWithApi(string filePath, out long start, out long end)
        {
            var apiFacade = new ApiFacade();
            //apiFacade.ProgressHandler = new ConsoleProgress();

            var container = apiFacade.LoadEventsFromFileAsync(filePath, LoadStrategyType.LoadEventsForChart)
                            .GetAwaiter()
                            .GetResult();

            start = container.FirstTimestamp;
            end   = container.LastTimestamp;

            SegmentSize[] segmentSizes = container.GetPreferredSegmentSizes(1000);
            long          segmentSize  = segmentSizes.Last().RequestedValue;

            var densitiesBySegments = container.GetDensities(start, end, segmentSize);
            var averageDensity      = densitiesBySegments.Average();

            return(averageDensity);
        }
示例#23
0
        private static void LoadEvents(string filePath, bool showPayloads)
        {
            var eventsApi = new ApiFacade
            {
                ProgressHandler = new ConsoleProgress()
            };


            var container = eventsApi.LoadEventsFromFileAsync(filePath, showPayloads ?
                                                              LoadStrategyType.LoadEventsAndPayloads : LoadStrategyType.LoadEventsForChart)
                            .GetAwaiter()
                            .GetResult();


            var    eventsTotalCount = container.Buckets.Sum(b => (long)b.Events.Length);
            Bucket lastBucket       = container.GetLastBucket();
            long   startTimestamp   = container.FirstTimestamp,
                   endTimestamp     = lastBucket?.GetAbsoluteTimeForEvent(lastBucket.GetLastEvent()) ?? 0;


            Console.WriteLine(
                LoadingCompletedTemplate,
                eventsTotalCount,
                container.Buckets.Length,
                startTimestamp / 10,
                endTimestamp / 10,
                (endTimestamp - startTimestamp) / 10000
                );

            var interactiveUserMode = new InteractiveUserMode(
                showPayloads ? InteractiveModeType.ShowPayloads : InteractiveModeType.ShowCharts,
                container
                );

            interactiveUserMode.Start();
        }
示例#24
0
        public void GlobalSetup()
        {
            try
            {
                var eventsApi = new ApiFacade
                {
                    ProgressHandler = new ConsoleProgress()
                };

                var filePath = Environment.GetEnvironmentVariable(FilePathEnvVariable);
                BucketContainer = eventsApi.LoadEventsFromFileAsync(filePath, LoadStrategyType.LoadEventsAndPayloadsForChart)
                                  .GetAwaiter()
                                  .GetResult();

                var lastBucket = BucketContainer.GetLastBucket();
                Start = BucketContainer.FirstTimestamp;
                End   = lastBucket?.GetAbsoluteTimeForEvent(lastBucket.GetLastEvent()) ?? 0;
            }
            catch (Exception exc)
            {
                Console.WriteLine();
                Console.WriteLine(exc.ToString());
            }
        }
示例#25
0
 static AdministratorFacadeController()
 {
     apiFacade = new ApiFacade();
 }
示例#26
0
 static CustomerFacadeController()
 {
     apiFacade = new ApiFacade();
 }
 static CompanyFacadeController()
 {
     apiFacade = new ApiFacade();
 }
示例#28
0
 public Form1()
 {
     InitializeComponent();
     _apexApiFacade = ApiFacade.GetInstance();
 }
示例#29
0
 public void Can_Get_Results_From_Live_API()
 {
     string url = string.Format("{0}search?&api-key={1}&format=xml", _apiUrl, _apiKey);
     var content = new ApiFacade().LoadContent(url);
     Assert.IsNotEmpty(content);
 }