public void should_throw_when_first_value_added_is_not_of_default_language()
        {
            var contentElement = CreateDefaultContentElement();
            var content        = ValueStub.Create().WithLanguage(Language.Create("en"));

            Assert.Throws <ArgumentException>(() => contentElement.AddValue(content));
        }
        public void should_overwrite_old_value_when_new_one_is_set()
        {
            var newValue       = ValueStub.Create().WithLanguage(Language.Invariant);
            var contentElement = CreateDefaultContentElement();

            contentElement.AddValue(ValueStub.Create().WithLanguage(Language.Invariant));
            contentElement.AddValue(newValue);
            contentElement.GetValue(Language.Invariant).Should().Be(newValue);
        }
        public void should_hold_multiple_values()
        {
            var contentElement = CreateDefaultContentElement();
            var content1       = ValueStub.Create().WithLanguage(Language.Invariant);
            var content2       = ValueStub.Create().WithLanguage(Language.Create("en"));

            contentElement.AddValue(content1);
            contentElement.AddValue(content2);
            contentElement.GetValues().Count().Should().Be(2);
        }
        public void should_throw_argument_exception_when_adding_collection_with_null()
        {
            var contents = new[]
            {
                ValueStub.Create().WithLanguage(Language.Invariant),
                null
            };

            Assert.Throws <ArgumentException>(() => CreateDefaultContentElement().AddValues(contents));
        }
        public void should_throw_argument_exception_when_value_is_of_invalid_type()
        {
            var contentElement = CreateDefaultContentElement();
            var content        = ValueStub
                                 .Create()
                                 .WithLanguage(Language.Invariant)
                                 .WithContentType(ContentType.List);

            Assert.Throws <ArgumentException>(() => contentElement.AddValue(content));
        }
        public void should_throw_ArgumentException_when_value_to_update_has_different_type()
        {
            var contentElement = CreateDefaultContentElement();
            var content        = ValueStub.Create().WithContentType(ContentType.Text).WithLanguage(Language.Invariant);

            contentElement.AddValue(content);

            var updateContent = ValueStub.Create().WithContentType(ContentType.List).WithLanguage(Language.Invariant);

            Assert.Throws <ArgumentException>(() => contentElement.UpdateValue(updateContent));
        }
        public void should_accept_multiple_values_added_when_at_least_one_is_default_language()
        {
            var contentElement = CreateDefaultContentElement();
            var contents       = new[]
            {
                ValueStub.Create().WithLanguage(Language.Create("en")),
                ValueStub.Create().WithLanguage(Language.Invariant)
            };

            contentElement.AddValues(contents);

            var actual = contentElement.GetValues();

            actual.Count().Should().Be(2);
        }
 public void should_accept_value_when_not_null()
 {
     CreateDefaultContentElement().AddValue(ValueStub.Create().WithLanguage(Language.Invariant));
 }