static void Main(string[] args) { Console.WriteLine("Hello World!"); ValueResource <int> testResource = new ValueResource <int>(3, "http://127.0.0.1:3333/int/"); ValueResource <XmlBool> test2 = new ValueResource <XmlBool>(new XmlBool(true), "http://127.0.0.1:3333/bool/"); WebsocketSubscription wsSubscription = new WebsocketSubscription("ws://stuff"); WebHookSubscription whSubscription = new WebHookSubscription("http://test"); ObservableCollection <int> c = new ObservableCollection <int>(); CollectionResource <ObservableCollection <int>, int> r = new CollectionResource <ObservableCollection <int>, int>(c, "http://localhost:12345/c/"); testResource.Subscribe(whSubscription); testResource.Subscribe(wsSubscription); Console.WriteLine("Any key to change int to 12 ..."); Console.ReadKey(); testResource.Value = 12; r.Subscribe(whSubscription); r.Subscribe(wsSubscription); Console.WriteLine("Any key to add 12 to Collection..."); Console.ReadKey(); r.Value.Add(12); Console.WriteLine("Any key to close application..."); Console.ReadKey(); }
public void FormattingADisputeCollectionAsHal_SettingHalForceTrue_ConfiguresForceHalTrue() { // Arrange const int numberOfItemsInCollection = 1000; const int numberOfPagesInCollection = 100; const int currentPage = 20; var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); mockedPagingLinks .Setup(pagingLinks => pagingLinks.GetPagingLinks(It.IsAny <Uri>(), currentPage, numberOfPagesInCollection)) .Returns(new List <Link>()); var disputes = new List <DisputeModel>(); var disputesCollection = new CollectionResource <DisputeModel>( new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), disputes); // Act var halResponse = responseObject.FormatForHal(disputesCollection); // Assert Assert.IsTrue(halResponse.Config.ForceHAL); }
public void ConfiguringAnInsolvencyCollectionAsHal_WithNullUriProvided_ThrowsArgumentNullException() { // Arrange const int numberOfItemsInCollection = 1000; const int numberOfPagesInCollection = 100; const int currentPage = 20; var addressResolverMock = new Mock <IAddressResolver>(); var pagingLinksMock = new Mock <IPagingLinks>(); var requestReaderMock = new Mock <IRequestReader>(); var includeReader = new Mock <IIncludeReader>(); var responseObject = new InsolvencyOrderCollectionResponse( addressResolverMock.Object, pagingLinksMock.Object, requestReaderMock.Object, includeReader.Object); var insolvencyOrders = new List <InsolvencyOrderModel>(); var insolvencyCollection = new CollectionResource <InsolvencyOrderModel>( new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), insolvencyOrders); // Act void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection); // Assert Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse); }
public void FormattingADisputeCollectionAsHal_WithACallToGetALinkToTheParentRecordInTheConfiguration_CallsGetLink() { // Arrange const int numberOfItemsInCollection = 1000; const int numberOfPagesInCollection = 100; const int currentPage = 20; const string routeName = DomainResources.Disputes; const string linkName = CommonLinks.Parent; var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); mockedPagingLinks .Setup(pagingLinks => pagingLinks.GetPagingLinks(It.IsAny <Uri>(), currentPage, numberOfPagesInCollection)) .Returns(new List <Link>()); var disputes = new List <DisputeModel>(); var disputesCollection = new CollectionResource <DisputeModel>( new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), disputes); // Act responseObject.FormatForHal(disputesCollection); // Assert mockedAddressResolver.Verify(mock => mock.GetLink(routeName, linkName), Times.Once); }
public void FormattingADisputeCollectionAsHal_WithDataProvided_CreatesHalResponseModelEqualToTheCollectionInformation() { // Arrange const int numberOfItemsInCollection = 1000; const int numberOfPagesInCollection = 100; const int currentPage = 20; var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); mockedPagingLinks .Setup(pagingLinks => pagingLinks.GetPagingLinks(It.IsAny <Uri>(), currentPage, numberOfPagesInCollection)) .Returns(new List <Link>()); var disputes = new List <DisputeModel>(); var disputesCollection = new CollectionResource <DisputeModel>( new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), disputes); // Act var halResponse = responseObject.FormatForHal(disputesCollection); // Assert halResponse.ShouldHaveModel(disputesCollection.Information); }
public void FormattingADisputeCollectionAsHal_WithValidDisputesModelCollection_ReturnsExpectedCollection() { // Arrange const int numberOfItemsInCollection = 1000; const int numberOfPagesInCollection = 100; const int currentPage = 20; var collectionKey = DomainResources.Disputes.ToLowerInvariant(); var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var disputes = new List <DisputeModel>(); var disputesCollection = new CollectionResource <DisputeModel>( new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), disputes); mockedPagingLinks .Setup(pagingLinks => pagingLinks.GetPagingLinks(It.IsAny <Uri>(), currentPage, numberOfPagesInCollection)) .Returns(new List <Link>()); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); var resultsToFormat = DisputeTestData.CreateDisputeActuals(); // Act var halFormattedResponse = responseObject.FormatForHal(disputesCollection); // Assert halFormattedResponse.ShouldHaveEmbeddedCollection(collectionKey, resultsToFormat); }
public void GetAllInsolvencyRecords_WhereThereAreSome_ReturnsOkStatusCode200() { // Arrange const int expectedStatusCode = 200; var collectionResourceInfo = new CollectionResourceInfo(0, 10, 1); var collectionResource = new CollectionResource <InsolvencyOrderModel>(collectionResourceInfo, TestFixture.CreateMany <InsolvencyOrderModel>(10).ToList()); mockDataAccessCradle .Setup(cradle => cradle.GetPagedDataSetAsync( It.IsAny <Func <Task <IEnumerable <InsolvencyOrderModel> > > >(), It.IsAny <Func <Task <int> > >())) .Returns(Task.FromResult(collectionResource)); var controller = new InsolvencyOrdersController( mockDataAccessCradle.Object, mockInsolvencyOrdersRepository.Object, mockInsolvencyOrdersFlattenedRepository.Object, mockIncludeReader.Object, mockPageInformationReader.Object, mockInsolvenciesHalFormatter.Object, mockInsolvenciesHalCollectionFormatter.Object, mockTelemetryClient.Object); // Act var result = controller.GetAllInsolvencyOrders().GetAwaiter().GetResult(); // Assert Assert.IsInstanceOfType(result, typeof(OkObjectResult)); Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode); }
public void ConfiguringAnInsolvencyCollectionAsHal_WithNullDataProvided_HasCorrectParameterNameInException() { // Arrange const string expectedParameterName = "collection"; CollectionResource <InsolvencyOrderModel> insolvencyCollection = null; var addressResolverMock = new Mock <IAddressResolver>(); var pagingLinksMock = new Mock <IPagingLinks>(); var requestReaderMock = new Mock <IRequestReader>(); var includeReader = new Mock <IIncludeReader>(); var responseObject = new InsolvencyOrderCollectionResponse( addressResolverMock.Object, pagingLinksMock.Object, requestReaderMock.Object, includeReader.Object); // Act void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection); // Assert ExceptionAssert.HasCorrectParameterNameForArgumentException( CreateHalResponse, expectedParameterName); }
public void GettingPersonsByInsolvencyOrderId_WhenThereAreNoneToReturn_ReturnsOkStatusCode200() { // Arrange const int insolvencyOrderId = 7654321; const int expectedStatusCode = 200; var collectionResourceInfo = new CollectionResourceInfo(0, 10, 1); var collectionResource = new CollectionResource <InsolvencyOrderPersonModel>(collectionResourceInfo, new List <InsolvencyOrderPersonModel>()); mockDataAccessCradle .Setup(cradle => cradle.GetPagedDataSetAsync( It.IsAny <Func <Task <IEnumerable <InsolvencyOrderPersonModel> > > >(), It.IsAny <Func <Task <int> > >())) .Returns(Task.FromResult(collectionResource)); var controller = new InsolvencyOrderPersonsController( mockDataAccessCradle.Object, mockPersonsRepository.Object, mockIncludeReader.Object, mockPageInformationProvider.Object, mockHalFormatter.Object, mockHalCollectionFormatter.Object, mockTelemetryClient.Object); // Act var result = controller.GetPersonsByInsolvencyIdAsync(insolvencyOrderId).GetAwaiter().GetResult(); // Assert Assert.IsInstanceOfType(result, typeof(OkObjectResult)); Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode); }
public void contains_profile() { var collectionResource = new CollectionResource<FooResource>(); var jToken = _mediaFormatter.Format(collectionResource); jToken.SelectToken("_links.profile.href").Value<string>().ShouldEqual(Profiles.Collection); }
public HttpResponseMessage Get() { var collectionResource = new CollectionResource<BarResource>(); collectionResource.Links.Add(new Link("self", "/BarCollection")); var resource = new BarResource(); resource.Links.Add(new Link("self", "/Bar/1")); collectionResource.Items.Add(resource); return Request.CreateResponse(collectionResource); }
public void items_element_is_json_array() { var collectionResource = new CollectionResource<FooResource>(); var jToken = _mediaFormatter.Format(collectionResource); jToken .SelectToken("_items") .Type .ShouldEqual(JTokenType.Array); }
public void items_array_contains_resources() { var collectionResource = new CollectionResource<FooResource>(); var resource = new FooResource { Bar = "Foo" }; resource.Links.Add(new Link("self", "/foo")); collectionResource.Items.Add(resource); var jToken = _mediaFormatter.Format(collectionResource); jToken .SelectToken("_items[0].bar") .Value<string>() .ShouldEqual("Foo"); }
public async Task <IActionResult> GetAuthors([FromQuery] TablesResourceParameters tableResourceParameters) { if (string.IsNullOrEmpty(tableResourceParameters?.TableName)) { return(BadRequest()); } var rows = await _dapperRepository.GetTableAsync(tableResourceParameters.TableName, tableResourceParameters.PageSize, tableResourceParameters.PageNumber); var rowCount = await _dapperRepository.GetTableCountAsync(tableResourceParameters.TableName); int currentPage = tableResourceParameters.PageNumber + 1; int pageSize = tableResourceParameters.PageSize; int totalCount = rowCount; return(Ok(CollectionResource.Create(rows, currentPage, pageSize, totalCount))); }
public void FormattingADisputeCollectionAsHal_WithNullDataProvided_ThrowsArgumentNullException() { // Arrange var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); CollectionResource <DisputeModel> disputesCollection = null; // Act void CreateHalResponse() => responseObject.FormatForHal(disputesCollection); // Assert Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse); }
public void ConfiguringAnInsolvencyCollectionAsHal_WithNullDataProvided_ThrowsArgumentNullException() { // Arrange CollectionResource <InsolvencyOrderModel> insolvencyCollection = null; var addressResolverMock = new Mock <IAddressResolver>(); var pagingLinksMock = new Mock <IPagingLinks>(); var requestReaderMock = new Mock <IRequestReader>(); var includeReader = new Mock <IIncludeReader>(); var responseObject = new InsolvencyOrderCollectionResponse( addressResolverMock.Object, pagingLinksMock.Object, requestReaderMock.Object, includeReader.Object); // Act void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection); // Assert Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse); }
public void FormattingADisputeCollectionAsHal_WithNullDataProvided_HasCorrectParameterNameInException() { // Arrange const string expectedParameterName = "collection"; var mockedRequestReader = new Mock <IRequestReader>(); var mockedAddressResolver = new Mock <IAddressResolver>(); var mockedPagingLinks = new Mock <IPagingLinks>(); var responseObject = new DisputeCollectionResponse( mockedAddressResolver.Object, mockedPagingLinks.Object, mockedRequestReader.Object); CollectionResource <DisputeModel> disputesCollection = null; // Act void CreateHalResponse() => responseObject.FormatForHal(disputesCollection); // Assert ExceptionAssert.HasCorrectParameterNameForArgumentException(CreateHalResponse, expectedParameterName); }
public void GettingDisputesByInsolvencyId_WhenThereAreSome_ReturnsOkStatusCode200() { // Arrange const int insolvencyOrderId = 1234567; const int expectedStatusCode = 200; var collectionResourceInfo = new CollectionResourceInfo(0, 10, 1); var collectionResource = new CollectionResource <DisputeModel>( collectionResourceInfo, TestFixture.CreateMany <DisputeModel>(10).ToList()); mockDataAccessCradle .Setup(dataAccessCradle => dataAccessCradle.GetPagedDataSetAsync( It.IsAny <Func <Task <IEnumerable <DisputeModel> > > >(), It.IsAny <Func <Task <int> > >())) .Returns(Task.FromResult(collectionResource)); var controller = new DisputesController( mockDataAccessCradle.Object, mockDisputeRepository.Object, mockIncludeReader.Object, mockPageInformationProvider.Object, mockDisputeFormatter.Object, mockDisputeCollectionFormatter.Object, mockTelemetryClient.Object); // Act var result = controller.GetDisputesByInsolvencyIdAsync(insolvencyOrderId).GetAwaiter().GetResult(); // Assert Assert.IsInstanceOfType(result, typeof(OkObjectResult)); Assert.AreEqual(expectedStatusCode, ((OkObjectResult)result).StatusCode); }
/// <summary> /// Format HAL collection /// </summary> /// <param name="collection">collection to format</param> /// <returns>HAL json</returns> public HALResponse FormatForHal(CollectionResource <InsolvencyOrderAddressModel> collection) { Requires.NotNull(collection, nameof(collection)); var uri = requestReader.GetRequestUri(); Link[] links = { addressResolver.GetLink(DomainResources.InsolvencyOrderAddress, CommonLinks.Self), addressResolver.GetLink(DomainResources.InsolvencyOrderAddresses, CommonLinks.Parent) }; var collectionResponse = new HALResponse(collection.Information, new HALModelConfig { ForceHAL = true }) .AddLinks(pagingLinks.GetPagingLinks(uri, collection.Information.CurrentPage, collection.Information.NumberOfPages)) .AddEmbeddedCollection( collectionName: DomainResources.InsolvencyOrderAddresses_camelCase, model: collection.Resources, links: links); return(collectionResponse); }