public void Model_Will_Have_Editor_Ids_From_Domain_Book()
        {
            var book = new Book();

            book.AddEditor(asimov);
            book.AddEditor(wyndham);

            var model = mapper.ModelFromEntity(book);

            Assert.That(model.EditorIds.Contains(asimov.Id));
            Assert.That(model.EditorIds.Contains(wyndham.Id));
        }
예제 #2
0
        public void Has_Tags_From_All_Related_Stories()
        {
            Tag cool = new Tag(), hot = new Tag(), old = new Tag(), sweet = new Tag();

            Story story1 = new Story(), story2 = new Story(), story3 = new Story();

            story1.AddTag(cool);
            story1.AddTag(hot);
            story2.AddTag(cool);
            story2.AddTag(old);
            story3.AddTag(sweet);

            var someBook = new Book();

            someBook.AddStory(story3);

            var tolkien = new Person();

            story1.AddAuthor(tolkien);
            story2.AddTranslator(tolkien);
            someBook.AddEditor(tolkien);

            Assert.That(tolkien.Tags.Contains(cool));
            Assert.That(tolkien.Tags.Contains(hot));
            Assert.That(tolkien.Tags.Contains(old));
            Assert.That(tolkien.Tags.Contains(sweet));
            Assert.That(tolkien.Tags.Count(), Is.EqualTo(4));
        }
예제 #3
0
        public void ClearEditors_Will_Make_Editors_Property_Empty()
        {
            var book = new Book();

            book.AddEditor(new Person());
            book.ClearEditors();
            Assert.That(book.Editors.Count(), Is.EqualTo(0));
        }
예제 #4
0
        public void Remove_Editor_Will_Remove_From_Book_Editors_Property()
        {
            var book = new Book();

            book.AddEditor(new Person());
            book.RemoveEditor(book.Editors.Single());
            Assert.That(book.Editors.Count(), Is.EqualTo(0));
        }
예제 #5
0
        public void Can_Derive_Editor_Role_From_EditedBooks()
        {
            var person = new Person();
            var book   = new Book();

            book.AddEditor(person);
            Assert.That(person.Roles.Contains(Role.Editor));
        }
예제 #6
0
        public void ClearEditors_Will_Remove_Book_From_Person_EditedBooks()
        {
            var book   = new Book();
            var person = new Person();

            book.AddEditor(person);
            book.ClearEditors();
            Assert.That(person.EditedBooks.Count(), Is.EqualTo(0));
        }
예제 #7
0
        public void Remove_Editor_Will_Remove_From_Person_EditedBooks_Property()
        {
            var book   = new Book();
            var person = new Person();

            book.AddEditor(person);
            book.RemoveEditor(person);
            Assert.That(person.EditedBooks.Count(), Is.EqualTo(0));
        }
예제 #8
0
        public void Can_Add_Editor()
        {
            var book   = new Book();
            var person = new Person();

            book.AddEditor(person);
            Assert.That(book.Editors.Count(), Is.EqualTo(1));
            Assert.That(person.EditedBooks.Count(), Is.EqualTo(1));
        }
예제 #9
0
        public void Will_Map_All_Editors()
        {
            var book = new Book();

            book.AddEditor(new Person());
            var result = mapper.ModelFromEntity(book);

            Assert.That(result.Editors.Count(), Is.EqualTo(1));
        }
예제 #10
0
        public void Will_Have_Same_Number_Of_EditedBooks_As_Source_Entity()
        {
            var person = new Person();
            var book   = new Book();

            book.AddEditor(person);
            var model = mapper.ModelFromEntity(person);

            Assert.That(model.EditedBooks.Count(), Is.EqualTo(1));
        }
        public void Will_Remove_Editors_No_Longer_In_Model()
        {
            var book = new Book();

            book.AddEditor(wyndham);
            book.AddEditor(asimov);

            people.Add(wyndham);
            people.Add(asimov);

            var model = mapper.ModelFromEntity(book);

            // Act! Upon postback only one of the IDs will still be selected:
            model.EditorIds = new[] { asimov.Id };

            mapper.MergeEntityWithModel(book, model);
            Assert.That(book.Editors.Count(), Is.EqualTo(1));
            Assert.That(book.Editors.FirstOrDefault(), Is.EqualTo(asimov));
        }
예제 #12
0
        public void Will_Map_Editors_As_CoverPeople_If_Available()
        {
            var book = new Book();

            book.AddEditor(new Person {
                Id = 42
            });
            var model = mapper.ModelFromEntity(book);

            Assert.That(model.CoverPeople.First().Id, Is.EqualTo(42));
        }
예제 #13
0
        public void Delete_Will_Cascade_To_BookEditors()
        {
            var person = new Person {
                Surname = "Edi Tor"
            };
            var book = new Book {
                Title = "Robot Dreams"
            };

            book.AddEditor(person);
            Session.Save(person);
            Session.Save(book);
            Session.Delete(book);
            Session.Flush();
        }
예제 #14
0
        public void Delete_Person_Will_Cascade_To_Edited_Books()
        {
            testBook.AddEditor(testPerson);

            using (var transaction = Session.BeginTransaction())
            {
                Session.Save(testPerson);
                Session.Save(testBook);
                transaction.Commit();
            }

            Session.Refresh(testPerson);

            Assert.DoesNotThrow(() => TransactionWrappedDelete(testPerson));
        }
예제 #15
0
        public void Can_Create_Comma_Separated_Roles_String()
        {
            // This test seems fragile. When it breaks it probably means proper localization
            // for this model property is needed (or in progress :D). Until then it's better
            // than nothing.

            var person = new Person();
            var book1  = new Book();
            var book2  = new Book();

            book1.AddAuthor(person);
            book2.AddEditor(person);

            var model = mapper.ModelFromEntity(person);

            Assert.That(model.Roles, Is.EqualTo("Author, Editor"));
        }