public async Task ShouldRemoveClassCorrectly() { var context = new FakeDbContext(); var handler = new RemoveClassCommandHandler(context); var request = new RemoveClassCommand(MockData.ExistingClassId); await handler.Handle(request, CancellationToken.None); (await context.Classes.ToArrayAsync()).Should().HaveCount(0).And.NotContain(new Class(3, "c")); }
public async Task DoesValidatorPreventFromRemovingNonExistentClass() { var context = new FakeDbContext(); var validator = new RemoveClassValidator(context); var request = new RemoveClassCommand("non-existent-class"); var result = await validator.ValidateAsync(request); result.IsValid.Should().BeFalse(); result.Errors.Should().HaveCount(1).And.ContainSingle(x => x.ErrorCode == "AsyncPredicateValidator" && x.ErrorMessage == "Mentioned class must already exist."); }
public async Task DoesValidatorAllowCorrectRemoveClassCommand() { var context = new FakeDbContext(); var validator = new RemoveClassValidator(context); var request = new RemoveClassCommand(MockData.ExistingClassId); var result = await validator.ValidateAsync(request); result.IsValid.Should().BeTrue(); result.Errors.Should().HaveCount(0); }
public async Task DoesValidatorPreventFromRemovingClassWithNullIdGiven() { var context = new FakeDbContext(); var validator = new RemoveClassValidator(context); var request = new RemoveClassCommand(null); var result = await validator.ValidateAsync(request); result.IsValid.Should().BeFalse(); result.Errors.Should().HaveCount(2) .And .Contain(x => x.ErrorCode == "NotEmptyValidator") .And .Contain(x => x.ErrorCode == "AsyncPredicateValidator" && x.ErrorMessage == "Mentioned class must already exist."); }
public ClassesViewModel(CharacterViewModel characterViewModel) { _owner = characterViewModel; _availableClasses = new ObservableCollection <ClassViewModel> { new ClassViewModel(this, new Rogue()), new ClassViewModel(this, new Wizard()), new PrestigeClassViewModel(this, new ArcaneSavant()) }; _levels = new ObservableCollection <ClassWithLevelViewModel>(); _createClassLevelCommand = new CreateClassLevelCommand(this); _removeClassCommand = new RemoveClassCommand(this); _addRemoveArchtypeCommand = new AddRemoveArchtypeCommand(this); _owner.RaceVM.PropertyChanged += (sender, args) => UpdatedLevels(); }