public void CallServiceAsync_Instance_Func_By_ObjectProperty_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; var resultsMock = new Mock <ISDataResults <SDataResource> >(); resultsMock.Setup(x => x.Content).Returns(new SDataResource { { "response", new SDataResource { { "value", "world" } } } }); var taskSource = new TaskCompletionSource <ISDataResults <SDataResource> >(); taskSource.SetResult(resultsMock.Object); clientMock.Setup(x => x.ExecuteAsync <SDataResource>(It.IsAny <SDataParameters>(), CancellationToken.None)) .Callback((SDataParameters p, CancellationToken c) => parms = p) .Returns(taskSource.Task); var obj = new CallService_Object(); var result = clientMock.Object.CallServiceAsync(() => obj.InstanceFuncByObjectProperty("hello"), null, CancellationToken.None).Result; Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/InstanceFuncByObjectProperty")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["entity"], Is.EqualTo(obj)); Assert.That(resource["arg"], Is.EqualTo("hello")); Assert.That(result, Is.EqualTo("world")); }
public void CallService_Instance_Func_By_KeyProperty_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; var resultsMock = new Mock <ISDataResults <SDataResource> >(); resultsMock.Setup(x => x.Content).Returns(new SDataResource { { "response", new SDataResource { { "value", "world" } } } }); clientMock.Setup(x => x.Execute <SDataResource>(It.IsAny <SDataParameters>())) .Callback((SDataParameters p) => parms = p) .Returns(resultsMock.Object); var obj = new CallService_Object { Key = "abc123" }; var result = clientMock.Object.CallService(() => obj.InstanceFuncByKeyProperty("hello")); Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/InstanceFuncByKeyProperty")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["entityKey"], Is.EqualTo("abc123")); Assert.That(resource["arg"], Is.EqualTo("hello")); Assert.That(result, Is.EqualTo("world")); }
public void CallServiceAsync_Instance_Action_By_KeyProperty_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; var taskSource = new TaskCompletionSource <ISDataResults>(); taskSource.SetResult(null); clientMock.Setup(x => x.ExecuteAsync(It.IsAny <SDataParameters>(), CancellationToken.None)) .Callback((SDataParameters p, CancellationToken c) => parms = p) .Returns(taskSource.Task); var obj = new CallService_Object { Key = "abc123" }; clientMock.Object.CallServiceAsync(() => obj.InstanceActionByKeyProperty("hello"), null, CancellationToken.None).Wait(CancellationToken.None); Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/InstanceActionByKeyProperty")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["entityKey"], Is.EqualTo("abc123")); Assert.That(resource["arg"], Is.EqualTo("hello")); }
public void CallService_Static_Func_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; var resultsMock = new Mock <ISDataResults <SDataResource> >(); resultsMock.Setup(x => x.Content).Returns(new SDataResource { { "response", new SDataResource { { "value", "world" } } } }); clientMock.Setup(x => x.Execute <SDataResource>(It.IsAny <SDataParameters>())) .Callback((SDataParameters p) => parms = p) .Returns(resultsMock.Object); var result = clientMock.Object.CallService(() => CallService_Object.StaticFunc("hello")); Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/StaticFunc")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["arg"], Is.EqualTo("hello")); Assert.That(result, Is.EqualTo("world")); }
public override void Save(Stream stream) { if (stream == null) { _document = string.IsNullOrEmpty(_document.Key) ? _client.Post(_document) : _client.Put(_document); return; } var parms = new SDataParameters { Files = { new AttachedFile(null, _document.FileName, stream) } }; if (string.IsNullOrEmpty(_document.Key)) { parms.Method = HttpMethod.Post; parms.Path = "libraryDocuments"; } else { parms.Method = HttpMethod.Put; parms.Path = "libraryDocuments(" + SDataUri.FormatConstant(_document.Key) + ")"; parms.ETag = _document.ETag; } if (_formMode) { foreach (var prop in typeof(LibraryDocument).GetProperties()) { var name = _client.NamingScheme.GetName(prop); if (!name.StartsWith("$", StringComparison.Ordinal) && !new[] { "createDate", "createUser", "modifyDate", "modifyUser" }.Contains(name, StringComparer.Ordinal)) { var value = prop.GetValue(_document, null); if (value != null) { parms.Form[name] = value.ToString(); } } } parms.Path += "/file"; var results = _client.Execute(parms); if (!string.IsNullOrEmpty(results.Location)) { var selector = new SDataUri(results.Location).GetPathSegment(4).Selector; _document.Key = selector.Substring(1, selector.Length - 2); _document.ETag = results.ETag; } } else { parms.Content = _document; _document = _client.Execute <LibraryDocument>(parms).Content; } }
public void GetSchema(string resourceType) { var param = new SDataParameters { Path = "$schema" }; var results = _sdata.Execute <SDataSchema>(param); foreach (var prop in results.Content.ResourceTypes[resourceType].ValueProperties) { } }
public async Task <Dictionary <string, string> > GetResourceTypes() { Dictionary <string, string> resourceTypes = new Dictionary <string, string>(); var param = new SDataParameters { Path = "$schema" }; var results = await _sdata.ExecuteAsync <SDataSchema>(param); foreach (var resource in results.Content.ResourceTypes) { resourceTypes.Add(resource.Path, resource.ElementName); } return(resourceTypes); }
public void GetProperties(string resourceType) { var path = resourceType; var param = new SDataParameters { Path = resourceType + "/$template" }; var results = _sdata.Execute(param); if (!string.IsNullOrEmpty(path)) { path += "/"; } var template = _sdata.Get("", path + "$template"); var i = 0; }
public void CallService_Static_Action_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; clientMock.Setup(x => x.Execute(It.IsAny <SDataParameters>())) .Callback((SDataParameters p) => parms = p); clientMock.Object.CallService(() => CallService_Object.StaticAction("hello")); Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/StaticAction")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["arg"], Is.EqualTo("hello")); }
public void CallService_Instance_Action_By_ObjectProperty_Test() { var clientMock = new Mock <ISDataClient>(); SDataParameters parms = null; clientMock.Setup(x => x.Execute(It.IsAny <SDataParameters>())) .Callback((SDataParameters p) => parms = p); var obj = new CallService_Object(); clientMock.Object.CallService(() => obj.InstanceActionByObjectProperty("hello")); Assert.That(parms, Is.Not.Null); Assert.That(parms.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(parms.Path, Is.EqualTo("dummy/$service/InstanceActionByObjectProperty")); var resource = parms.Content as SDataResource; Assert.That(resource, Is.Not.Null); resource = resource["request"] as SDataResource; Assert.That(resource, Is.Not.Null); Assert.That(resource["entity"], Is.EqualTo(obj)); Assert.That(resource["arg"], Is.EqualTo("hello")); }
public void Execute_Batch_Test() { var requestMock = new Mock<SDataRequest>(null, null, null); requestMock.Setup(x => x.GetResponse()).Returns(new SDataResponse(HttpStatusCode.OK, null, null, null, null, null, null, null, null)); SDataUri requestUri = null; var requestFactory = new Func<string, SDataRequest>(uri => { requestUri = new SDataUri(uri); return requestMock.Object; }); var client = new SDataClient("test://dummy", requestFactory); var file1 = new AttachedFile(null, null, null); var params1 = new SDataParameters { Include = "include1", Select = "select1", Precedence = 1, Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = {{"foo1", "bar1"}}, Method = HttpMethod.Post, Content = new object(), ContentType = MediaType.ImageTiff, ETag = "etag1", Form = {{"hello1", "world1"}}, Files = {file1}, Accept = new[] {MediaType.ImageJpeg} }; var file2 = new AttachedFile(null, null, null); var resource2 = new SDataResource {Key = "key2"}; resource2["foo"] = "bar"; var params2 = new SDataParameters { Include = "include2", Select = "select2", Precedence = 2, Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = {{"foo2", "bar2"}}, Method = HttpMethod.Put, Content = resource2, ContentType = MediaType.ImageTiff, ETag = "etag2", Form = {{"hello2", "world2"}}, Files = {file2}, Accept = new[] {MediaType.Css} }; client.ExecuteBatch<SDataResource>(new[] {params1, params2}); var resources = requestMock.Object.Content as IList<SDataResource>; Assert.That(resources, Is.Not.Null); Assert.That(requestUri, Is.Not.Null); Assert.That(requestUri.Include, Is.EqualTo("include1,include2")); Assert.That(requestUri.Select, Is.EqualTo("select1,select2")); Assert.That(requestUri.Precedence, Is.EqualTo(2)); Assert.That(requestUri.Format, Is.EqualTo(MediaType.ImagePng)); Assert.That(requestUri.Language, Is.EqualTo("language")); Assert.That(requestUri.Version, Is.EqualTo("version")); Assert.That(requestUri.Path, Is.EqualTo("path/$batch")); Assert.That(requestUri["_foo1"], Is.EqualTo("bar1")); Assert.That(requestUri["_foo2"], Is.EqualTo("bar2")); Assert.That(requestMock.Object.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(resources[0].HttpMethod, Is.EqualTo(HttpMethod.Post)); Assert.That(resources[1].HttpMethod, Is.EqualTo(HttpMethod.Put)); Assert.That(resources[0].Url, Is.Null); Assert.That(resources[1].Url, Is.EqualTo(new Uri("test://dummy/path('key2')?include=include2&select=select2&precedence=2"))); Assert.That(requestMock.Object.ContentType, Is.EqualTo(MediaType.ImageTiff)); Assert.That(resources[0].IfMatch, Is.EqualTo("etag1")); Assert.That(resources[1].IfMatch, Is.EqualTo("etag2")); Assert.That(requestMock.Object.Form["hello1"], Is.EqualTo("world1")); Assert.That(requestMock.Object.Form["hello2"], Is.EqualTo("world2")); Assert.That(requestMock.Object.Files[0], Is.EqualTo(file1)); Assert.That(requestMock.Object.Files[1], Is.EqualTo(file2)); Assert.That(requestMock.Object.Accept, Is.EqualTo(new[] {MediaType.ImageJpeg, MediaType.Css})); Assert.That(requestMock.Object.AcceptLanguage, Is.EqualTo("language")); }
public void Execute_Test() { var requestMock = new Mock<SDataRequest>(null, null, null); requestMock.Setup(x => x.GetResponse()).Returns(new SDataResponse(HttpStatusCode.OK, null, null, null, null, null, null, null, null)); SDataUri requestUri = null; var requestFactory = new Func<string, SDataRequest>(uri => { requestUri = new SDataUri(uri); return requestMock.Object; }); var client = new SDataClient("test://dummy", requestFactory); var content = new object(); var file = new AttachedFile(null, null, null); var parms = new SDataParameters { StartIndex = 1, Count = 2, Where = "where", OrderBy = "order_by", Search = "search", Include = "include", Select = "select", Precedence = 3, IncludeSchema = true, ReturnDelta = true, TrackingId = "tracking_id", Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = {{"foo", "bar"}}, Method = HttpMethod.Put, Content = content, ContentType = MediaType.ImageTiff, ETag = "etag", Form = {{"hello", "world"}}, Files = {file}, Accept = new[] {MediaType.ImageJpeg} }; client.Execute(parms); Assert.That(requestUri, Is.Not.Null); Assert.That(requestUri.StartIndex, Is.EqualTo(1)); Assert.That(requestUri.Count, Is.EqualTo(2)); Assert.That(requestUri.Where, Is.EqualTo("where")); Assert.That(requestUri.OrderBy, Is.EqualTo("order_by")); Assert.That(requestUri.Search, Is.EqualTo("search")); Assert.That(requestUri.Include, Is.EqualTo("include")); Assert.That(requestUri.Select, Is.EqualTo("select")); Assert.That(requestUri.Precedence, Is.EqualTo(3)); Assert.That(requestUri.IncludeSchema, Is.EqualTo(true)); Assert.That(requestUri.ReturnDelta, Is.EqualTo(true)); Assert.That(requestUri.TrackingId, Is.EqualTo("tracking_id")); Assert.That(requestUri.Format, Is.EqualTo(MediaType.ImagePng)); Assert.That(requestUri.Language, Is.EqualTo("language")); Assert.That(requestUri.Version, Is.EqualTo("version")); Assert.That(requestUri.Path, Is.EqualTo("path")); Assert.That(requestUri["_foo"], Is.EqualTo("bar")); Assert.That(requestMock.Object.Method, Is.EqualTo(HttpMethod.Put)); Assert.That(requestMock.Object.Content, Is.EqualTo(content)); Assert.That(requestMock.Object.ContentType, Is.EqualTo(MediaType.ImageTiff)); Assert.That(requestMock.Object.ETag, Is.EqualTo("etag")); Assert.That(requestMock.Object.Form["hello"], Is.EqualTo("world")); Assert.That(requestMock.Object.Files[0], Is.EqualTo(file)); Assert.That(requestMock.Object.Accept, Is.EqualTo(new[] {MediaType.ImageJpeg})); Assert.That(requestMock.Object.AcceptLanguage, Is.EqualTo("language")); }
public void Execute_Batch_Test() { var requestMock = new Mock <SDataRequest>(null, null, null); requestMock.Setup(x => x.GetResponse()).Returns(new SDataResponse(HttpStatusCode.OK, null, null, null, null, null, null, null, null)); SDataUri requestUri = null; var requestFactory = new Func <string, SDataRequest>(uri => { requestUri = new SDataUri(uri); return(requestMock.Object); }); var client = new SDataClient("test://dummy", requestFactory); var file1 = new AttachedFile(null, null, null); var params1 = new SDataParameters { Include = "include1", Select = "select1", Precedence = 1, Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = { { "foo1", "bar1" } }, Method = HttpMethod.Post, Content = new object(), ContentType = MediaType.ImageTiff, ETag = "etag1", Form = { { "hello1", "world1" } }, Files = { file1 }, Accept = new[] { MediaType.ImageJpeg } }; var file2 = new AttachedFile(null, null, null); var resource2 = new SDataResource { Key = "key2" }; resource2["foo"] = "bar"; var params2 = new SDataParameters { Include = "include2", Select = "select2", Precedence = 2, Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = { { "foo2", "bar2" } }, Method = HttpMethod.Put, Content = resource2, ContentType = MediaType.ImageTiff, ETag = "etag2", Form = { { "hello2", "world2" } }, Files = { file2 }, Accept = new[] { MediaType.Css } }; client.ExecuteBatch <SDataResource>(new[] { params1, params2 }); var resources = requestMock.Object.Content as IList <SDataResource>; Assert.That(resources, Is.Not.Null); Assert.That(requestUri, Is.Not.Null); Assert.That(requestUri.Include, Is.EqualTo("include1,include2")); Assert.That(requestUri.Select, Is.EqualTo("select1,select2")); Assert.That(requestUri.Precedence, Is.EqualTo(2)); Assert.That(requestUri.Format, Is.EqualTo(MediaType.ImagePng)); Assert.That(requestUri.Language, Is.EqualTo("language")); Assert.That(requestUri.Version, Is.EqualTo("version")); Assert.That(requestUri.Path, Is.EqualTo("path/$batch")); Assert.That(requestUri["_foo1"], Is.EqualTo("bar1")); Assert.That(requestUri["_foo2"], Is.EqualTo("bar2")); Assert.That(requestMock.Object.Method, Is.EqualTo(HttpMethod.Post)); Assert.That(resources[0].HttpMethod, Is.EqualTo(HttpMethod.Post)); Assert.That(resources[1].HttpMethod, Is.EqualTo(HttpMethod.Put)); Assert.That(resources[0].Url, Is.Null); Assert.That(resources[1].Url, Is.EqualTo(new Uri("test://dummy/path('key2')?include=include2&select=select2&precedence=2"))); Assert.That(requestMock.Object.ContentType, Is.EqualTo(MediaType.ImageTiff)); Assert.That(resources[0].IfMatch, Is.EqualTo("etag1")); Assert.That(resources[1].IfMatch, Is.EqualTo("etag2")); Assert.That(requestMock.Object.Form["hello1"], Is.EqualTo("world1")); Assert.That(requestMock.Object.Form["hello2"], Is.EqualTo("world2")); Assert.That(requestMock.Object.Files[0], Is.EqualTo(file1)); Assert.That(requestMock.Object.Files[1], Is.EqualTo(file2)); Assert.That(requestMock.Object.Accept, Is.EqualTo(new[] { MediaType.ImageJpeg, MediaType.Css })); Assert.That(requestMock.Object.AcceptLanguage, Is.EqualTo("language")); }
public void Execute_Test() { var requestMock = new Mock <SDataRequest>(null, null, null); requestMock.Setup(x => x.GetResponse()).Returns(new SDataResponse(HttpStatusCode.OK, null, null, null, null, null, null, null, null)); SDataUri requestUri = null; var requestFactory = new Func <string, SDataRequest>(uri => { requestUri = new SDataUri(uri); return(requestMock.Object); }); var client = new SDataClient("test://dummy", requestFactory); var content = new object(); var file = new AttachedFile(null, null, null); var parms = new SDataParameters { StartIndex = 1, Count = 2, Where = "where", OrderBy = "order_by", Search = "search", Include = "include", Select = "select", Precedence = 3, IncludeSchema = true, ReturnDelta = true, TrackingId = "tracking_id", Format = MediaType.ImagePng, Language = "language", Version = "version", Path = "path", ExtensionArgs = { { "foo", "bar" } }, Method = HttpMethod.Put, Content = content, ContentType = MediaType.ImageTiff, ETag = "etag", Form = { { "hello", "world" } }, Files = { file }, Accept = new[] { MediaType.ImageJpeg } }; client.Execute(parms); Assert.That(requestUri, Is.Not.Null); Assert.That(requestUri.StartIndex, Is.EqualTo(1)); Assert.That(requestUri.Count, Is.EqualTo(2)); Assert.That(requestUri.Where, Is.EqualTo("where")); Assert.That(requestUri.OrderBy, Is.EqualTo("order_by")); Assert.That(requestUri.Search, Is.EqualTo("search")); Assert.That(requestUri.Include, Is.EqualTo("include")); Assert.That(requestUri.Select, Is.EqualTo("select")); Assert.That(requestUri.Precedence, Is.EqualTo(3)); Assert.That(requestUri.IncludeSchema, Is.EqualTo(true)); Assert.That(requestUri.ReturnDelta, Is.EqualTo(true)); Assert.That(requestUri.TrackingId, Is.EqualTo("tracking_id")); Assert.That(requestUri.Format, Is.EqualTo(MediaType.ImagePng)); Assert.That(requestUri.Language, Is.EqualTo("language")); Assert.That(requestUri.Version, Is.EqualTo("version")); Assert.That(requestUri.Path, Is.EqualTo("path")); Assert.That(requestUri["_foo"], Is.EqualTo("bar")); Assert.That(requestMock.Object.Method, Is.EqualTo(HttpMethod.Put)); Assert.That(requestMock.Object.Content, Is.EqualTo(content)); Assert.That(requestMock.Object.ContentType, Is.EqualTo(MediaType.ImageTiff)); Assert.That(requestMock.Object.ETag, Is.EqualTo("etag")); Assert.That(requestMock.Object.Form["hello"], Is.EqualTo("world")); Assert.That(requestMock.Object.Files[0], Is.EqualTo(file)); Assert.That(requestMock.Object.Accept, Is.EqualTo(new[] { MediaType.ImageJpeg })); Assert.That(requestMock.Object.AcceptLanguage, Is.EqualTo("language")); }