public void CartManger_Create_Order_Test() { Song[] songs = new Song[] { new Song() { SongId = 1, NameSong = "Test1" }, new Song() { SongId = 2, NameSong = "Test2" }, new Song() { SongId = 3, NameSong = "Test3" }, new Song() { SongId = 4, NameSong = "Test4" } }; List <CartItem> mySession = new List <CartItem>() { new CartItem() { Song = songs[0], Quantity = 1 }, new CartItem() { Song = songs[1], Quantity = 1 }, new CartItem() { Song = songs[2], Quantity = 1 }, new CartItem() { Song = songs[3], Quantity = 1 } }; List <Order> myOrders = new List <Order>(); Order fakeOrder = new Order() { Name = "Test1", OrderId = 1 }; Mock <ISessionManager> mockSession = new Mock <ISessionManager>(); Mock <ISongRepository> mockRepository = new Mock <ISongRepository>(); mockSession.Setup(x => x.Get <List <CartItem> >(It.IsAny <string>())).Returns(mySession); mockRepository.Setup(x => x.AddOrder(It.IsAny <Order>())).Callback((Order s) => myOrders.Add(s)); mockRepository.Setup(x => x.OrdersWithSongOrderedAndSongIncluded).Returns(myOrders); CartManager target = new CartManager(mockSession.Object, mockRepository.Object); var result = target.CreatedOrder(fakeOrder); Assert.IsInstanceOfType(result.SongOrdered, typeof(List <OrderPosition>)); Assert.AreEqual(4, result.SongOrdered.Count); }