Esempio n. 1
0
        public void ExpectedDeleteLinkUriShouldBeGenerated(DeleteLinkUriOption deleteLinkUriOption, string expectedUri)
        {
            this.dataServiceContext.DeleteLinkUriOption = deleteLinkUriOption;

            var customer = new Customer {
                Id = 1
            };
            var order = new Order {
                Id = 1
            };

            var customerCollection = new DataServiceCollection <Customer>(
                dataServiceContext, new[] { customer },
                TrackingMode.AutoChangeTracking,
                "Customers",
                null,
                null);
            var orderCollection = new DataServiceCollection <Order>(
                dataServiceContext,
                new[] { order },
                TrackingMode.AutoChangeTracking,
                "Orders",
                null,
                null);

            this.dataServiceContext.DeleteLink(customer, "Orders", order);
            var saveResult = new TestSaveResult(this.dataServiceContext, "SaveChanges", SaveChangesOptions.None, null, null);

            // The API does not offer an easy way to grap the created request and inspect the Uri so we ride on an extensibility hook
            this.dataServiceContext.SendingRequest2 += (sender, args) =>
            {
                Assert.Equal(expectedUri, args.RequestMessage.Url.AbsoluteUri);
            };

            // If SendingRequest2 event if not fired, an exception is thrown and the test will fail
            saveResult.CreateRequestAndFireSendingEvent();
        }
Esempio n. 2
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            Dev2JsonSerializer serializer = new Dev2JsonSerializer();

            try
            {
                Dev2Logger.Info("Save Tests Service");
                StringBuilder testDefinitionMessage;
                StringBuilder resourceIdString;
                StringBuilder resourcePathString;
                values.TryGetValue("resourceID", out resourceIdString);
                if (resourceIdString == null)
                {
                    throw new InvalidDataContractException("resourceID is missing");
                }
                Guid resourceId;
                if (!Guid.TryParse(resourceIdString.ToString(), out resourceId))
                {
                    throw new InvalidDataContractException("resourceID is not a valid GUID.");
                }
                values.TryGetValue("resourcePath", out resourcePathString);
                if (resourcePathString == null)
                {
                    throw new InvalidDataContractException("resourcePath is missing");
                }
                values.TryGetValue("testDefinitions", out testDefinitionMessage);
                if (testDefinitionMessage == null || testDefinitionMessage.Length == 0)
                {
                    throw new InvalidDataContractException("testDefinition is missing");
                }
                var res = new ExecuteMessage
                {
                    HasError = false,
                    Message  = serializer.SerializeToBuilder(new TestSaveResult
                    {
                        Result = SaveResult.Success,
                    })
                };

                var decompressedMessage = serializer.Deserialize <CompressedExecuteMessage>(testDefinitionMessage).GetDecompressedMessage();
                var serviceTestModelTos = serializer.Deserialize <List <IServiceTestModelTO> >(decompressedMessage);
                var resource            = ResourceCatalog.GetResource(GlobalConstants.ServerWorkspaceID, resourceId);
                if (resource == null)
                {
                    var testResult = new TestSaveResult
                    {
                        Result  = SaveResult.ResourceDeleted,
                        Message = $"Resource {resourcePathString} has been deleted. No Tests can be saved for this resource."
                    };
                    res.Message = serializer.SerializeToBuilder(testResult);
                }
                else
                {
                    var resourcePath = resource.GetResourcePath(GlobalConstants.ServerWorkspaceID);
                    if (!resourcePath.Equals(resourcePathString.ToString(), StringComparison.InvariantCultureIgnoreCase))
                    {
                        var testResult = new TestSaveResult
                        {
                            Result  = SaveResult.ResourceUpdated,
                            Message = $"Resource {resourcePathString} has changed to {resourcePath}. Tests have been saved for this resource."
                        };
                        res.Message = serializer.SerializeToBuilder(testResult);
                    }
                    TestCatalog.SaveTests(resourceId, serviceTestModelTos);
                }
                return(serializer.SerializeToBuilder(res));
            }
            catch (Exception err)
            {
                Dev2Logger.Error(err);
                var res = new ExecuteMessage {
                    HasError = true, Message = new StringBuilder(err.Message)
                };
                return(serializer.SerializeToBuilder(res));
            }
        }