Ejemplo n.º 1
0
        public void CopyEqualsToOriginal()
        {
            BuildsBinding binding = FakeGenerator.GetBuildsBinding();

            BuildsBinding copy = binding.DeepClone();

            Assert.True(binding.Equals(copy));
            Assert.Equal(binding.GetHashCode(), copy.GetHashCode());
        }
Ejemplo n.º 2
0
        public void Transitivity()
        {
            BuildsBinding a = FakeGenerator.GetBuildsBinding();
            BuildsBinding b = FakeGenerator.GetBuildsBinding();
            BuildsBinding c = FakeGenerator.GetBuildsBinding();

            bool ab = a.Equals(b), ac = a.Equals(c), bc = b.Equals(c);

            Assert.Equal(ab && ac, bc);
        }
        public void RestoreFromEvents_Success()
        {
            Guid     distributionId = Guid.NewGuid();
            Metadata metadata       = new Metadata()
            {
                AggregateId = distributionId
            };
            List <User> owners = FakeGenerator.Users.Generate(4);

            LifeCycleState[] lifeCycleStates     = Enum.GetValues(typeof(LifeCycleState)).Cast <LifeCycleState>().ToArray();
            string[]         lifeCycleStateRules = lifeCycleStates.Select(x => x.ToString()).ToArray();
            BuildsBinding    buildsBinding1      = FakeGenerator.GetBuildsBinding();
            BuildsBinding    buildsBinding2      = FakeGenerator.GetBuildsBinding();
            BuildsBinding    buildsBinding3      = FakeGenerator.GetBuildsBinding();

            Guid[] newBuilds1       = { Guid.NewGuid(), Guid.NewGuid() };
            Guid[] newBuilds2       = { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() };
            var    fakeBuildBinding = new Dictionary <BuildsBinding, Guid[]>()
            {
                [buildsBinding1] = new Guid[] { Guid.NewGuid(), Guid.NewGuid() },
                [buildsBinding2] = new Guid[] {},
                [buildsBinding3] = new Guid[] { Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid() },
            };

            var distribution = new Distribution(new List <Event>
            {
                new DistributionCreated(distributionId, DistributionName, new User[] { owners[0] }, new LifeCycleState[] { lifeCycleStates[0] }, Array.Empty <string>(), metadata),

                new DistributionOwnersAdded(new User[] { owners[1], owners[2] }, metadata),
                new DistributionOwnersRemoved(new User[] { owners[0], owners[2] }, metadata),
                new DistributionOwnersAdded(new User[] { owners[0], owners[2], owners[3] }, metadata),

                new DistributionAvailableLifeCyclesAdded(new LifeCycleState[] { lifeCycleStates[1], lifeCycleStates[2] }, metadata),
                new DistributionAvailableLifeCyclesRemoved(new LifeCycleState[] { lifeCycleStates[2], lifeCycleStates[1], lifeCycleStates[0] }, metadata),
                new DistributionAvailableLifeCyclesAdded(lifeCycleStates, metadata),

                new DistributionLifeCycleStateRulesAdded(new string[] { lifeCycleStateRules[1], lifeCycleStateRules[2] }, metadata),
                new DistributionLifeCycleStateRulesRemoved(new string[] { lifeCycleStateRules[2] }, metadata),
                new DistributionLifeCycleStateRulesRemoved(new string[] { lifeCycleStateRules[1] }, metadata),
                new DistributionLifeCycleStateRulesAdded(lifeCycleStateRules, metadata),

                new BuildBindingsAdded(fakeBuildBinding, metadata),
                new BuildBindingsRemoved(fakeBuildBinding.Take(1).ToDictionary(x => x.Key, x => x.Value), metadata),
                new BuildsToBuildsBindingAdded(buildsBinding2, newBuilds1, metadata),
                new BuildFromBuildsBindingRemoved(buildsBinding3, fakeBuildBinding[buildsBinding3].Take(3).ToArray(), metadata),
                new BuildsToBuildsBindingAdded(buildsBinding2, newBuilds2, metadata),
                new BuildBindingsAdded(fakeBuildBinding.Take(1).ToDictionary(x => x.Key, x => x.Value), metadata),
                new BuildsToBuildsBindingAdded(buildsBinding1, newBuilds1, metadata),
            });


            AssertDistribution(distribution, owners, lifeCycleStates, lifeCycleStateRules);
            Assert.Equal(new Dictionary <BuildsBinding, List <Guid> >()
            {
Ejemplo n.º 4
0
        public void Symmetry()
        {
            BuildsBinding a = FakeGenerator.GetBuildsBinding();
            BuildsBinding b = FakeGenerator.GetBuildsBinding();

            bool
                primary   = a.Equals(b),
                backwards = b.Equals(a);

            Assert.Equal(primary, backwards);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Удаляет сборки из привязки.
        /// </summary>
        /// <param name="buildBinding">Привязка к сборкам.</param>
        /// <param name="buildIds">Идентификаторы сборок.</param>
        public void RemoveBuildsFromBinding(BuildsBinding buildBinding, Guid[] buildIds)
        {
            if (!BindingToBuilds.ContainsKey(buildBinding))
            {
                return;
            }

            var buildsToRemove = buildIds.Distinct().Intersect(BindingToBuilds[buildBinding]);

            if (buildsToRemove.IsEmpty())
            {
                return;
            }

            Apply(new BuildFromBuildsBindingRemoved(buildBinding, buildsToRemove.ToArray(), CreateMetadata()));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Удаляет новые сборки в привязку.
        /// </summary>
        /// <param name="buildBinding">Привязка к сборкам.</param>
        /// <param name="buildIds">Идентификаторы новых сборок.</param>
        public void AddBuildsToBinding(BuildsBinding buildBinding, Guid[] buildIds)
        {
            if (!BindingToBuilds.ContainsKey(buildBinding))
            {
                return;
            }

            var newBuildIds = buildIds.Distinct().Except(BindingToBuilds[buildBinding]);

            if (newBuildIds.IsEmpty())
            {
                return;
            }

            Apply(new BuildsToBuildsBindingAdded(buildBinding, newBuildIds.ToArray(), CreateMetadata()));
        }