コード例 #1
0
        public void When_can_execute_is_called_with_an_invalid_request_result_is_false()
        {
            var executor       = new ReviseQuoteRequestExecutor();
            var anotherRequest = new RetrieveMultipleRequest();

            Assert.False(executor.CanExecute(anotherRequest));
        }
コード例 #2
0
        public void Should_Create_New_Quote_With_Lines_When_Revisioning()
        {
            var context = new XrmFakedContext();
            var service = context.GetOrganizationService();

            var quote = new Entity
            {
                LogicalName = "quote",
                Id          = Guid.NewGuid(),
                Attributes  = new AttributeCollection
                {
                    { "statuscode", new OptionSetValue(1) },
                    { "name", "Adventure Quote" }
                }
            };

            var quoteDetail = new Entity
            {
                LogicalName = "quotedetail",
                Id          = Guid.NewGuid(),
                Attributes  = new AttributeCollection
                {
                    { "quoteid", quote.ToEntityReference() },
                    { "extendedamount", new Money(1000m) }
                }
            };

            context.Initialize(new[]
            {
                quote, quoteDetail
            });

            var executor = new ReviseQuoteRequestExecutor();

            var req = new ReviseQuoteRequest
            {
                ColumnSet = new ColumnSet(true),
                QuoteId   = quote.Id
            };

            executor.Execute(req, context);

            quote = service.RetrieveMultiple(new QueryExpression("quote")
            {
                ColumnSet = new ColumnSet(true),
                Criteria  = new FilterExpression(LogicalOperator.And)
                {
                    Conditions =
                    {
                        new ConditionExpression("quoteid", ConditionOperator.NotEqual, quote.Id)
                    }
                }
            }).Entities.SingleOrDefault();

            Assert.NotNull(quote);
            Assert.Equal("Adventure Quote", quote.GetAttributeValue <string>("name"));

            var quoteLines = service.RetrieveMultiple(new QueryExpression("quotedetail")
            {
                ColumnSet = new ColumnSet(true),
                Criteria  = new FilterExpression(LogicalOperator.And)
                {
                    Conditions = { new ConditionExpression("quoteid", ConditionOperator.Equal, quote.ToEntityReference()) }
                }
            }).Entities.ToList();

            Assert.Equal(1, quoteLines.Count);
            Assert.Equal(new Money(1000m), quoteLines.Single().GetAttributeValue <Money>("extendedamount"));
        }