public int RegisterNewShareType(ShareTypeRegistrationInfo args) { var entityToAdd = new ShareTypeEntity() { Name = args.Name, Cost = args.Cost, Status = args.Status }; if (this.tableRepository.Contains(entityToAdd)) { throw new ArgumentException("This share type has been registered. Can't continue."); } this.tableRepository.Add(entityToAdd); this.tableRepository.SaveChanges(); return(entityToAdd.Id); }
public void ShouldRegisterNewShareType() { // Arrange var shareTypeTableRepository = Substitute.For <IShareTypeTableRepository>(); ShareTypesService shareTypesService = new ShareTypesService(shareTypeTableRepository); ShareTypeRegistrationInfo args = new ShareTypeRegistrationInfo(); args.Name = "Cheap"; args.Cost = 1000.00M; args.Status = true; // Act var shareTypeId = shareTypesService.RegisterNewShareType(args); // Assert shareTypeTableRepository.Received(1).Add(Arg.Is <ShareTypeEntity>( s => s.Name == args.Name && s.Cost == args.Cost && s.Status == args.Status)); shareTypeTableRepository.Received(1).SaveChanges(); }
public void ShouldNotRegisterNewShareTypeIfItExists() { // Arrange var shareTypeTableRepository = Substitute.For <IShareTypeTableRepository>(); ShareTypesService shareTypesService = new ShareTypesService(shareTypeTableRepository); ShareTypeRegistrationInfo args = new ShareTypeRegistrationInfo(); args.Name = "Cheap"; args.Cost = 1000.00M; args.Status = true; // Act shareTypesService.RegisterNewShareType(args); shareTypeTableRepository.Contains(Arg.Is <ShareTypeEntity>( // Now Contains returns true (table contains this share type) s => s.Name == args.Name && s.Cost == args.Cost && s.Status == args.Status)).Returns(true); shareTypesService.RegisterNewShareType(args); // Try to reg. same twice and get exception // Assert }