public void ShouldMap() { var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory(); using (var session = sessionFactory.OpenSession()) { using (var transaction = session.BeginTransaction()) { var createdUser = new User {GooglePlusId = "some id?", Name = "user name"}; session.Save(createdUser); var playlist2 = new Playlist("users second playlist") { User = createdUser, Sequence = 200, }; var video = new Video { Id = "some id", Author = "video author", Duration = 90, HighDefinition = true, Title = "my video", }; session.Save(video); var playlistItem = new PlaylistItem { Cid = "cid", Playlist = playlist2, Video = video, Sequence = 300, Title = "My playlist item", }; playlist2.AddItem(playlistItem); session.Save(playlist2); session.Flush(); session.Clear(); var savedPlaylistItem = session.Get<PlaylistItem>(playlistItem.Id); Assert.That(savedPlaylistItem.Title, Is.EqualTo("My playlist item")); Assert.That(savedPlaylistItem.Id, Is.Not.EqualTo(Guid.Empty)); Assert.That(savedPlaylistItem.Sequence, Is.EqualTo(300)); Assert.That(savedPlaylistItem.Video, Is.EqualTo(playlistItem.Video)); transaction.Rollback(); } } }
/// <summary> /// Creates a new Video and PlaylistItem, puts item in the database and then returns /// the item. Just a nice utility method to keep things DRY. /// </summary> public static PlaylistItem CreateItemInPlaylist(Playlist playlist) { Video videoNotInDatabase = CreateUnsavedVideoWithId(); // Create a new PlaylistItem and write it to the database. string title = videoNotInDatabase.Title; var playlistItem = new PlaylistItem(title, videoNotInDatabase); playlist.AddItem(playlistItem); PlaylistItemManager.Save(playlistItem); return playlistItem; }
/// <summary> /// Creates a new Video and PlaylistItem, puts item in the database and then returns /// the item. Just a nice utility method to keep things DRY. /// </summary> public static PlaylistItem CreateItemInPlaylist(Playlist playlist) { Video videoNotInDatabase = CreateUnsavedVideoWithId(); // Create a new PlaylistItem and write it to the database. string title = videoNotInDatabase.Title; var playlistItem = new PlaylistItem(title, videoNotInDatabase); playlist.AddItem(playlistItem); NHibernateSessionManager.Instance.OpenSessionAndBeginTransaction(); PlaylistItemManager.Save(playlistItem); NHibernateSessionManager.Instance.CommitTransactionAndCloseSession(); return playlistItem; }
public void ShouldMap() { var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory(); using (var session = sessionFactory.OpenSession()) { using (var transaction = session.BeginTransaction()) { var createdUser = new User {GooglePlusId = "some id?", Name = "user name"}; session.Save(createdUser); var playlist2 = new Playlist("users second playlist") { User = createdUser, Sequence = 200, }; var playlistItem = new PlaylistItem { Cid = "cid", Playlist = playlist2, Video = new Video(), Sequence = 200, }; playlist2.AddItem(playlistItem); var playlistId = session.Save(playlist2); session.Flush(); session.Clear(); var savedPlaylist = session.Get<Playlist>(playlistId); Assert.That(savedPlaylist.Title, Is.EqualTo("users second playlist")); Assert.That(savedPlaylist.Id, Is.Not.EqualTo(Guid.Empty)); Assert.That(savedPlaylist.Sequence, Is.EqualTo(200)); Assert.That(savedPlaylist.Items, Has.Exactly(1).EqualTo(playlistItem)); transaction.Rollback(); } } }