コード例 #1
0
        /// <summary>
        /// Builds this IOrganizationService.
        /// </summary>
        /// <returns></returns>
        public IOrganizationService Build()
        {
            ApplyNewEntityDefaultIds();
            ApplyEntityFilter();

            return(new FakeIOrganizationService(Service)
            {
                AssociateActions = AssociateActions.ToArray(),
                CreateFuncs = CreateFuncs.ToArray(),
                DeleteActions = DeleteActions.ToArray(),
                DisassociateActions = DisassociateActions.ToArray(),
                ExecuteFuncs = ExecuteFuncs.ToArray(),
                RetrieveMultipleFuncs = RetrieveMultipleFuncs.ToArray(),
                RetrieveFuncs = RetrieveFuncs.ToArray(),
                UpdateActions = UpdateActions.ToArray()
            });
        }
コード例 #2
0
        /// <summary>
        /// Asserts failure whenever an action is requested that would perform an update (Create / Delete / Update) of some sort
        /// </summary>
        /// <returns></returns>
        public TDerived IsReadOnly()
        {
            AssociateActions.Add((s, n, i, r, c) => { TestSettings.TestFrameworkProvider.AssertFail("An attempt was made to Associate Entities with a ReadOnly Service"); });
            WithNoCreates();
            DeleteActions.Add((s, n, i) => { TestSettings.TestFrameworkProvider.AssertFail($"An attempt was made to Delete a(n) {n} Entity with id {i}, using a ReadOnly Service"); });
            DisassociateActions.Add((s, n, i, r, c) => { TestSettings.TestFrameworkProvider.AssertFail("An attempt was made to Disassociate Entities with a ReadOnly Service"); });
            ExecuteFuncs.Add((s, r) =>
            {
                var readOnlyStartsWithNames = new List <string>
                {
                    "CanBe",
                    "CanManyToMany",
                    "Download",
                    "Execute",
                    "Export",
                    "FetchXmlToQueryExpression",
                    "FindParentResourceGroup",
                    "Get",
                    "Is",
                    "LocalTimeFromUtcTime",
                    "Query",
                    "Retrieve",
                    "Search",
                    "UtcTimeFromLocalTime",
                    "WhoAmI"
                };
                if (readOnlyStartsWithNames.Any(n => r.RequestName.StartsWith(n)))
                {
                    return(s.Execute(r));
                }

                throw TestSettings.TestFrameworkProvider.Value.GetFailedException($"An attempt was made to Execute Request {r.RequestName} with a ReadOnly Service");
            });
            UpdateActions.Add((s, e) => { throw TestSettings.TestFrameworkProvider.Value.GetFailedException($"An attempt was made to Update a(n) {e.LogicalName} Entity with id {e.Id}, using a ReadOnly Service"); });
            return(This);
        }
コード例 #3
0
 /// <summary>
 /// Adds the fake disassociate.
 /// </summary>
 /// <param name="action">The action.</param>
 /// <returns></returns>
 public TDerived WithFakeDisassociate(params Action <IOrganizationService, string, Guid, Relationship, EntityReferenceCollection>[] action)
 {
     DisassociateActions.AddRange(action); return(This);
 }