Пример #1
0
        public void VerifyThatModifyShiftCopyOperationsWorks2()
        {
            // all the things cannot be copied
            this.permissionService.Setup(x => x.CanWrite(It.Is <ClassKind>(cl => cl != ClassKind.ParameterSubscription), It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.OpenIterations).Returns(
                new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration1, new Tuple <DomainOfExpertise, Participant>(domain1, null) },
                { this.iteration2, new Tuple <DomainOfExpertise, Participant>(domain2, null) }
            });

            var iteration2Clone = this.iteration2.Clone(false);
            var defClone        = this.rootDef.Clone(false);

            defClone.Iid = Guid.NewGuid();
            iteration2Clone.Element.Add(defClone);

            var transactionContext = TransactionContextResolver.ResolveContext(this.iteration2);
            var context            = transactionContext.ContextRoute();

            var operationContainer = new OperationContainer(context, this.model2.RevisionNumber);

            operationContainer.AddOperation(new Operation(this.iteration2.ToDto(), iteration2Clone.ToDto(), OperationKind.Update));
            operationContainer.AddOperation(new Operation(this.rootDef.ToDto(), defClone.ToDto(), OperationKind.Copy));

            var copyHandler = new CopyOperationHandler(this.session.Object);

            copyHandler.ModifiedCopyOperation(operationContainer);

            var operations = operationContainer.Operations.ToList();

            Assert.AreEqual(13, operations.Count);
            Assert.IsNotEmpty(operationContainer.Context);
        }
Пример #2
0
        public void VerifyThatDryCopyDoesNotCopySubscriptionWithInactiveDomain()
        {
            this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <Thing>())).Returns(true);
            this.session.Setup(x => x.OpenIterations).Returns(
                new Dictionary <Iteration, Tuple <DomainOfExpertise, Participant> >
            {
                { this.iteration1, new Tuple <DomainOfExpertise, Participant>(domain1, null) },
                { this.iteration2, new Tuple <DomainOfExpertise, Participant>(domain1, null) }
            });
            this.subscription1.Owner = this.domain3;

            var iteration2Clone = this.iteration2.Clone(false);
            var defClone        = this.rootDef.Clone(false);

            defClone.Iid = Guid.NewGuid();
            iteration2Clone.Element.Add(defClone);

            var transactionContext = TransactionContextResolver.ResolveContext(this.iteration2);
            var context            = transactionContext.ContextRoute();

            var operationContainer = new OperationContainer(context, this.model2.RevisionNumber);

            operationContainer.AddOperation(new Operation(this.iteration2.ToDto(), iteration2Clone.ToDto(), OperationKind.Update));
            operationContainer.AddOperation(new Operation(this.rootDef.ToDto(), defClone.ToDto(), OperationKind.CopyDefaultValuesChangeOwner));

            var copyHandler = new CopyOperationHandler(this.session.Object);

            copyHandler.ModifiedCopyOperation(operationContainer);

            var operations = operationContainer.Operations.ToList();

            Assert.AreEqual(13, operations.Count);
            Assert.IsNotEmpty(operationContainer.Context); // check that operation container is correctly built

            var ownedThings =
                operationContainer.Operations.Select(x => x.ModifiedThing)
                .Where(x => x.ClassKind != ClassKind.ParameterSubscription)
                .OfType <Dto.IOwnedThing>()
                .ToList();

            var dtoOwner = ownedThings.Select(x => x.Owner).Distinct().Single();

            Assert.AreEqual(dtoOwner, this.domain1.Iid);

            var subCount =
                operationContainer.Operations.Select(x => x.ModifiedThing)
                .OfType <Dto.ParameterSubscription>().Count();

            Assert.AreEqual(0, subCount);
        }