public async Task Return_CustomResponseObject_WhenCallIsFailed()
        {
            HttpResponseMessage httpResponseMessage = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.BadRequest,
            };
            Example example = new Example();

            HandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponseMessage);

            DilibHttpClientResponse <Example> result = await DiLibHttpClient.DeleteAsync <Example>(
                AbsoluteUri, example)
                                                       .ConfigureAwait(false);

            result.Should().BeOfType <DilibHttpClientResponse <Example> >();
            result.IsSuccess.Should().BeFalse();
            result.HttpStatusCode.Should().Be((int)HttpStatusCode.BadRequest);
            result.Exception.Should().BeOfType <HttpRequestException>();
        }
Exemple #2
0
        public async Task Return_CustomResponseObject_WhenCallIsSuccessful()
        {
            HttpResponseMessage httpResponseMessage = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(@"{ ""result"":""success""}"),
            };

            HandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponseMessage);

            DilibHttpClientResponse <ExampleResult> exampleResult = await DiLibHttpClient.GetAsync <ExampleResult>(
                AbsoluteUri)
                                                                    .ConfigureAwait(false);

            exampleResult.Should().BeOfType <DilibHttpClientResponse <ExampleResult> >();
            exampleResult.IsSuccess.Should().BeTrue();
            exampleResult.HttpStatusCode.Should().Be((int)HttpStatusCode.OK);
            exampleResult.Result.Should().BeOfType <ExampleResult>();
            exampleResult.Result.Result.Should().Be("success");
        }
Exemple #3
0
        public async Task TestListViewProcessSelectedItem()
        {
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)),
                                                o => o.StringArray = new[] { "a" });

            await Application.TestListViewProcessSelectedItem(typeof(RestPropertyObject));
        }
        public async Task Request_object()
        {
            HandlerMock.SetupRestOperationObject(_restObjects);

            var restObject = await Application.CreateObjectSpace(typeof(RestOperationObject))
                             .Request <RestOperationObject>();

            restObject.Name.ShouldBe(_restObjects.Last().Name);
        }
Exemple #5
0
    public void BoundValues(int value, int threshold, int callCount)
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerter();

        alerter.Add(threshold, handler.AlertHandler);
        alerter.Check(value);
        Assert.Equal(callCount, handler.CallCount);
    }
Exemple #6
0
    public void BoundValues(int value, int threshold, int callCount)
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { threshold });

        alerter.ThresholdReached += handler.AlertHandler;
        alerter.Check(value);
        Assert.Equal(callCount, handler.CallCount);
    }
        public async Task ReadOnly_DomainComponent_Dependency()
        {
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)));

            var restObject = await Application.CreateObjectSpace(typeof(RestPropertyObject))
                             .Request <RestPropertyObject>();

            restObject.RestObjectStats.ShouldNotBeNull();
            restObject.RestObjectStats.Name.ShouldBe(restObject.RestOperationObjectName);
        }
        public async Task Arrays_BindingList()
        {
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)), o => o.StringArray = new [] { "a" });

            var restObject = await Application.CreateObjectSpace(typeof(RestPropertyObject))
                             .Request <RestPropertyObject>();

            restObject.StringArrayList.Count.ShouldBe(1);
            restObject.StringArrayList.First().Name.ShouldBe("a");
        }
Exemple #9
0
    public void AlertWhenReachedThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { 10 });

        alerter.ThresholdReached += handler.AlertHandler;
        alerter.Check(10);
        Assert.Equal(1, handler.CallCount);
        Assert.Equal(10, handler.ReachedThreshold);
    }
Exemple #10
0
    public void AlertOnceWhenPassedSeveralThresholds()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { 10, 20 });

        alerter.ThresholdReached += handler.AlertHandler;
        alerter.Check(30);
        Assert.Equal(1, handler.CallCount);
        Assert.Equal(20, handler.ReachedThreshold);
    }
        public async Task Create_object()
        {
            HandlerMock.SetupRestOperationObject(_restObjects);
            var objectSpace = Application.CreateObjectSpace(typeof(RestOperationObject));

            objectSpace.CreateObject <RestOperationObject>();

            objectSpace.CommitChanges();
            await RestService.Object.FirstAsync();
        }
Exemple #12
0
    public void AlertWhenReachedThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerter();

        alerter.Add(10, handler.AlertHandler);

        alerter.Check(10);
        Assert.Equal(1, handler.CallCount);
        Assert.Equal(10, handler.ReachedThreshold);
    }
Exemple #13
0
    public void NoAlertWhenNoReachedThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { 100 });

        alerter.ThresholdReached += handler.AlertHandler;
        alerter.Check(0);
        alerter.Check(50);
        alerter.Check(99);
        Assert.Equal(0, handler.CallCount);
    }
        public async Task Delete_object()
        {
            var objectSpace = Application.CreateObjectSpace(typeof(RestOperationObject));
            var objects     = new[] { objectSpace.CreateObject <RestOperationObject>() };

            HandlerMock.SetupRestOperationObject(objects);
            var restObject = await objectSpace.Request <RestOperationObject>();

            objectSpace.Delete(restObject);
            objectSpace.CommitChanges();
            await RestService.Object.FirstAsync();
        }
Exemple #15
0
    public void AlertOnceWhenPassedSeveralThresholds()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerter();

        alerter.Add(10, handler.AlertHandler);
        alerter.Add(20, handler.AlertHandler);

        alerter.Check(30);
        Assert.Equal(1, handler.CallCount);
        Assert.Equal(20, handler.ReachedThreshold);
    }
Exemple #16
0
    public void NoAlertWhenNoReachedThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerter();

        alerter.Add(100, handler.AlertHandler);

        alerter.Check(0);
        alerter.Check(50);
        alerter.Check(99);
        Assert.Equal(0, handler.CallCount);
    }
Exemple #17
0
    public void ManyChecks()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(Enumerable.Range(0, 100).Select(i => i * 10));

        alerter.ThresholdReached += handler.AlertHandler;
        for (int i = 0; i < 10000; i++)
        {
            alerter.Check(i);
        }
        Assert.Equal(100, handler.CallCount);
        Assert.Equal(990, handler.ReachedThreshold);
    }
Exemple #18
0
    public void AlertOnceOnReachedThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { 10 });

        alerter.ThresholdReached += handler.AlertHandler;
        // Alert
        alerter.Check(10);
        Assert.Equal(1, handler.CallCount);
        // No alert, already reached 10
        alerter.Check(11);
        Assert.Equal(1, handler.CallCount);
    }
Exemple #19
0
        public void Setup()
        {
            Handler = new HandlerMock();

            OwnerProperty = PropertyStub
                            .WithBehaviors(Handler)
                            .Build();

            OwnerVM = ViewModelStub
                      .WithProperties(OwnerProperty)
                      .Build();

            Command = new ViewModelCommand(OwnerVM, OwnerProperty);
        }
        public async Task ReactiveCollection_Fetch()
        {
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)));

            var restObject = await Application.CreateObjectSpace(typeof(RestPropertyObject))
                             .Request <RestPropertyObject>();

            var whenListChanged    = restObject.ActiveObjects.WhenListChanged().FirstAsync();
            var activeObjectsCount = restObject.ActiveObjects.Count;

            activeObjectsCount.ShouldBe(0);
            await whenListChanged;

            restObject.ActiveObjects.Count.ShouldBeGreaterThan(activeObjectsCount);
        }
        public void RestOperation_Action()
        {
            HandlerMock.SetupRestOperationObject(_restObjects);
            var window     = Application.CreateViewWindow();
            var detailView = Application.NewDetailView(typeof(RestOperationObject));

            window.SetView(detailView);

            var action = window.Action("Act");

            action.ShouldNotBeNull();
            action.Active.ResultValue.ShouldBeTrue();
            action.DoExecute(_ => new[] { detailView.CurrentObject });

            HandlerMock.VerifySend(Times.Exactly(1), message => $"{message.RequestUri}".Contains("Act"));
        }
Exemple #22
0
    public void ManyChecks()
    {
        var alerter = new ThresholdAlerter();
        var handler = new HandlerMock();

        for (int i = 0; i < 1000; i += 10)
        {
            alerter.Add(i, handler.AlertHandler);
        }
        for (int i = 0; i < 10000; i++)
        {
            alerter.Check(i);
        }
        Assert.Equal(100, handler.CallCount);
        Assert.Equal(990, handler.ReachedThreshold);
    }
Exemple #23
0
        public async Task Do_not_Cache_Post_Requests()
        {
            var objectSpace         = Application.CreateObjectSpace(typeof(RestOperationObject));
            var restOperationObject = objectSpace.CreateObject <RestOperationObject>();
            var objects             = new[] { restOperationObject };

            HandlerMock.SetupRestOperationObject(objects);
            var restObject = await objectSpace.Request <RestOperationObject>().Timeout(Timeout);

            restObject.Name = "1";
            objectSpace.CommitChanges();
            restObject.Name = "2";
            objectSpace.CommitChanges();
            await RestService.Object.FirstAsync().Timeout(Timeout);

            HandlerMock.VerifySend(Times.Exactly(2), message => $"{message.RequestUri}".Contains($"Update{nameof(RestOperationObject)}"));
        }
Exemple #24
0
    public void AlertWhenValueGoesDownAndUpThreshold()
    {
        var handler = new HandlerMock();
        var alerter = new ThresholdAlerterV2(new[] { 10, 20 });

        alerter.ThresholdReached += handler.AlertHandler;
        // Alert
        alerter.Check(20);
        Assert.Equal(1, handler.CallCount);
        Assert.Equal(20, handler.ReachedThreshold);
        // No alert
        alerter.Check(0);
        Assert.Equal(1, handler.CallCount);
        // Alert again
        alerter.Check(17);
        Assert.Equal(2, handler.CallCount);
        Assert.Equal(10, handler.ReachedThreshold);
    }
        public async Task Property_Operation_on_existing_object(bool isEnable, string name)
        {
            var objects = new[] { new RestOperationPropertyObject()
                                  {
                                      IsEnabled = !isEnable
                                  } };

            HandlerMock.SetupRestOperationObject(objects);
            var objectSpace = Application.CreateObjectSpace(typeof(RestOperationPropertyObject));
            var restObject  = await objectSpace.Request <RestOperationPropertyObject>();

            restObject.IsEnabled = isEnable;
            objectSpace.CommitChanges();

            await RestService.Object.FirstAsync(t =>
                                                t.message.RequestMessage?.RequestUri is not null && t.message.RequestMessage != null &&
                                                t.message.RequestMessage.RequestUri.AbsoluteUri.Contains(name));
        }
Exemple #26
0
        public async Task Cache_Get_Requests(int times)
        {
            var typeInfo           = Application.TypesInfo.FindTypeInfo(typeof(RestPropertyObject));
            var operationAttribute = typeInfo.FindAttributes <RestOperationAttribute>().First(attribute => attribute.Operation == Operation.Get);

            if (times == 2)
            {
                operationAttribute.PollInterval = 0;
            }
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)));
            await Application.CreateObjectSpace(typeof(RestPropertyObject))
            .Request(typeof(RestPropertyObject)).FirstAsync().Timeout(Timeout);

            await Application.CreateObjectSpace(typeof(RestPropertyObject))
            .Request(typeof(RestPropertyObject)).Timeout(Timeout);

            HandlerMock.VerifySend(Times.Exactly(times), message => $"{message.RequestUri}".Contains($"Get{nameof(RestPropertyObject)}"));

            operationAttribute.PollInterval = RestOperationAttribute.DefaultPollingInterval;
        }
Exemple #27
0
        public async Task Arrays_BindingList_Lookup_Datasource()
        {
            HandlerMock.SetupRestPropertyObject(Application.CreateObjectSpace(typeof(RestPropertyObject)),
                                                o => o.StringArray = new[] { "a" });
            var detailView = await Application.TestListViewProcessSelectedItem(typeof(RestPropertyObject));

            var nestedFrame           = detailView.GetListPropertyEditor <RestPropertyObject>(o => o.StringArrayList).Frame;
            var whenDetailViewCreated =
                Application.WhenDetailViewCreated(typeof(ObjectString)).FirstAsync().SubscribeReplay();
            var newObjectAction = nestedFrame.GetController <NewObjectViewController>().NewObjectAction;

            newObjectAction.DoExecute(
                space => new[] { space.GetObject(nestedFrame.View.AsListView().CollectionSource.Objects().First()) },
                true);

            var t = await whenDetailViewCreated;

            var currentObject      = ((ObjectString)t.e.View.CurrentObject);
            var restPropertyObject = ((RestPropertyObject)detailView.CurrentObject);

            currentObject.DataSource.Count.ShouldBe(restPropertyObject.StringArraySource.Count);
            currentObject.DataSource.Select(s => s.Name).First()
            .ShouldBe(restPropertyObject.StringArraySource.Select(s => s.Name).First());
        }
 public override void Untyped_Response_With_Content_Register_Callback()
 {
     UntypedMock.Object.BadRequest((object res) => { });
     HandlerMock.Verify(handler => handler.RegisterCallback(HttpStatusCode.BadRequest, It.IsAny <Action <object> >()), Times.Once);
 }
 public override void Typed_Response_Without_Content_Register_Callback()
 {
     TypedMock.Object.InternalServerError(() => { });
     HandlerMock.Verify(handler => handler.RegisterCallback(HttpStatusCode.InternalServerError, It.IsAny <Action>()), Times.Once);
 }
Exemple #30
0
 public override void Untyped_Response_Without_Content_Register_Callback()
 {
     UntypedMock.Object.Forbidden(() => { });
     HandlerMock.Verify(handler => handler.RegisterCallback(HttpStatusCode.Forbidden, It.IsAny <Action>()), Times.Once);
 }