public void Immutable_When_CreatingFromBuilder_WithDefaultValue()
        {
            var entity = new MyImmutableEntity.Builder().ToImmutable();

            entity.Should().NotBeNull();
            entity.MyField1.Should().Be(4);
        }
        public void Immutable_When_Using_OptionNone()
        {
            MyImmutableEntity.Builder  builder = MyImmutableEntity.None;
            Option <MyImmutableEntity> option  = builder;

            option.MatchNone().Should().BeTrue();
        }
        public void Immutable_When_CreatingFromBuilder_And_ImplicitlyCasted()
        {
            MyImmutableEntity entity = new MyImmutableEntity.Builder
            {
                MyField1 = 42
            };

            entity.Should().NotBeNull();
            entity.MyField1.Should().Be(42);
        }
Ejemplo n.º 4
0
        public void Immutable_When_CreatingABuilderFromExisting_And_NoChanges_Then_ReferenceIsSame()
        {
            MyImmutableEntity original = new MyImmutableEntity.Builder
            {
                MyField1 = 42
            };

            var builder     = new MyImmutableEntity.Builder(original);
            var newInstance = builder.ToImmutable();

            newInstance.Should().BeSameAs(original);
        }
        public void Immutable_When_CreatingABuilderFromExisting()
        {
            MyImmutableEntity original = new MyImmutableEntity.Builder
            {
                MyField1 = 42
            };

            MyImmutableEntity newInstance = original
                                            .WithMyField1(43);

            original.MyField1.Should().Be(42);
            newInstance.MyField1.Should().Be(43);
        }
        public void Immutable_When_CreatingFromBuilder_TheResultIsCached()
        {
            var builder = new MyImmutableEntity.Builder
            {
                MyField1 = 42
            };

            var r1 = builder.ToImmutable();
            var r2 = builder.ToImmutable();

            r1.Should().NotBeNull();
            r1.MyField1.Should().Be(42);
            r1.Should().BeSameAs(r2);
        }