void CreateUser_returns_400_when_username_exist() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <UsersController>(); var context = scope.Resolve <DiscussionContext>(); var user = new User { Id = Guid.NewGuid(), Username = "******", Password = "******", Nickname = "cccchr" }; context.Users.Add(user); context.SaveChanges(); // Act var result = controller.CreateUser(new UsersController.CreateUserModel { Username = "******", Password = "******", Nickname = "realchr" }); // Assert var badResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("UsernameExist", badResult.Value); }
void CreateUser_returns_ok_when_everything_ok() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <UsersController>(); var context = scope.Resolve <DiscussionContext>(); // Act var model = new UsersController.CreateUserModel { Username = "******", Password = "******", Nickname = "realchr" }; var result = controller.CreateUser(model); // Assert Assert.IsType <OkResult>(result); var userInDatabase = context.Users.Where(p => p.Username == model.Username).FirstOrDefault(); Assert.NotNull(userInDatabase); Assert.Equal(model.Username, userInDatabase.Username); Assert.Equal(model.Password, userInDatabase.Password); Assert.Equal(model.Nickname, userInDatabase.Nickname); }
void CreateArticle_returns_ok_when_ok_with_id_and_saves_article() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); var loginStatus = scope.Resolve <FakeLoginStatus>(); loginStatus.RealUserId = Guid.NewGuid(); // Act var model = new ArticlesController.CreateArticleModel { Title = "title23213", Text = "asdasdasdasdasd" }; var result = controller.CreateArticle(model); // Assert var okResult = Assert.IsType <OkObjectResult>(result); var articleId = Assert.IsType <Guid>(okResult.Value); var article = controller.Context.Articles.Where(p => p.Id == articleId).FirstOrDefault(); Assert.NotNull(article); Assert.Equal(articleId, article.Id); Assert.Equal(model.Title, article.Title); Assert.Equal(model.Text, article.Text); Assert.Equal(loginStatus.UserId, article.UserId); }
void RemoveArticle_returns_forbidden_when_article_not_belong_to_current_user() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); var loginStatus = scope.Resolve <FakeLoginStatus>(); // Set userId of login status loginStatus.RealUserId = Guid.NewGuid(); // add an article which not belongs to current user var article = new Article { Id = Guid.NewGuid(), Text = "asdasdasdas", ThumbCount = 0, Title = "asdasdasdad", UserId = Guid.NewGuid() // a random }; controller.Context.Articles.Add(article); controller.Context.SaveChanges(); // Act var result = controller.RemoveArticle(article.Id); // Assert Assert.IsType <ForbidResult>(result); }
void RemoveArticle_returns_unauthorized_when_not_login() { // rArrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); // Act var result = controller.RemoveArticle(Guid.NewGuid()); // Assert Assert.IsType <UnauthorizedResult>(result); }
void RemoveArticle_returns_notfound_when_article_not_exist() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); var loginStatus = scope.Resolve <FakeLoginStatus>(); loginStatus.RealUserId = Guid.NewGuid(); // Act var result = controller.RemoveArticle(Guid.NewGuid()); // Assert Assert.IsType <NotFoundResult>(result); }
void CreateArticle_returns_unauthorized_when_not_login() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); // Act var result = controller.CreateArticle(new ArticlesController.CreateArticleModel { Title = "title23213", Text = "asdasdasdasdasd" }); // Assert Assert.IsType <UnauthorizedResult>(result); }
void CreateArticle_returns_400_when_model_invalid() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); // Act var result = controller.CreateArticle(new ArticlesController.CreateArticleModel { Title = "", Text = "" }); // Assert var badResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("模型无效", badResult.Value); }
void CreateUser_returns_400_when_model_invalid() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <UsersController>(); // Act var result = controller.CreateUser(new UsersController.CreateUserModel { Username = "******", Password = "******", Nickname = "realchr" }); // Assert var badResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal("ModelInvalid", badResult.Value); }
void RemoveArticle_returns_ok_and_change_db_when_all_condition_ok() { // Arrange var container = ContainerCreator.CreateContainer(); var scope = container.BeginLifetimeScope(); var controller = scope.Resolve <ArticlesController>(); var loginStatus = scope.Resolve <FakeLoginStatus>(); // Set userId of login status loginStatus.RealUserId = Guid.NewGuid(); // add an article which not belongs to current user var article = new Article { Id = Guid.NewGuid(), Text = "asdasdasdas", ThumbCount = 0, Title = "asdasdasdad", UserId = loginStatus.UserId }; controller.Context.Articles.Add(article); controller.Context.SaveChanges(); // Act var result = controller.RemoveArticle(article.Id); // Assert Assert.IsType <OkResult>(result); // Check database var articleInDatabase = controller.Context.Articles.FirstOrDefault(p => p.Id == article.Id); Assert.Null(articleInDatabase); }
public async Task DepositWalletLockReleasedEventSent__AggregateIsRejectedCashin__NotifyCashinFailedCommandSent() { var operationId = Guid.NewGuid(); var cashinAggregate = CashinAggregate.Restore(operationId, "ETC", 6, 6, 10, 250, "ETC", "EthereumClassic", 0, DateTime.UtcNow, "0x...", 150, 250, null, null, null, 0.05m, "0x...", DateTime.UtcNow, 10, 10, DateTime.UtcNow, null, operationId, CashinResult.Unknown, null, null, 10, 250, "0xHASH", CashinState.ClientRetrieved, true, "1.0.0", CashinErrorCode.Unknown, null); var cashinRepoMock = new Mock <ICashinRepository>(); cashinRepoMock.Setup(x => x.GetAsync(It.IsAny <Guid>())).ReturnsAsync(cashinAggregate); var repoModule = new RepoMockModule((builder) => { var depositWalletLockRepository = new Mock <IDepositWalletLockRepository>(); var matchingEngineCallsDeduplicationRepository = new Mock <IMatchingEngineCallsDeduplicationRepository>(); var enrolledBalanceRepository = new Mock <IEnrolledBalanceRepository>(); builder.RegisterInstance(cashinRepoMock.Object) .As <ICashinRepository>(); builder.RegisterInstance(matchingEngineCallsDeduplicationRepository.Object) .As <IMatchingEngineCallsDeduplicationRepository>(); builder.RegisterInstance(enrolledBalanceRepository.Object) .As <IEnrolledBalanceRepository>(); builder.RegisterInstance(depositWalletLockRepository.Object) .As <IDepositWalletLockRepository>(); }); var dependencies = GetIntegrationDependencies(); dependencies.Add(repoModule); var testContainer = ContainerCreator.CreateContainer( dependencies.ToArray() ); var cqrsEngine = testContainer.Resolve <ICqrsEngine>(); var @event = new BlockchainRiskControl.Contract.Events.OperationRejectedEvent() { OperationId = operationId, Message = "Test" }; cqrsEngine.StartSubscribers(); cqrsEngine.PublishEvent(@event, BlockchainRiskControl.Contract.BlockchainRiskControlBoundedContext.Name); await CqrsTestModule.CommandsInterceptor.WaitForCommandToBeHandledWithTimeoutAsync( typeof(ReleaseDepositWalletLockCommand), TimeSpan.FromMinutes(4)); await CqrsTestModule.EventsInterceptor.WaitForEventToBeHandledWithTimeoutAsync( typeof(DepositWalletLockReleasedEvent), TimeSpan.FromMinutes(4)); await CqrsTestModule.CommandsInterceptor.WaitForCommandToBeHandledWithTimeoutAsync( typeof(NotifyCashinFailedCommand), TimeSpan.FromMinutes(4)); }