Beispiel #1
0
        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
        }