public async Task WhenAdminUserIsNull_ThrowsNullRefException() { var service = new TestableUserService(); await ContractAssert.ThrowsArgNullAsync( async() => await service.RequestTransformToOrganizationAccount(accountToTransform: new User("account"), adminUser: null), "adminUser"); }
private async Task VerifyCreatesRequest(bool testOverwrite) { // Arrange var service = new TestableUserService(); var account = new User("Account"); var admin = CreateAdminUser(); service.MockUserRepository.Setup(r => r.CommitChangesAsync()).Returns(Task.CompletedTask).Verifiable(); DateTime?requestDate = null; string requestToken = null; for (int i = 0; i < (testOverwrite ? 2 : 1); i++) { // Act await service.RequestTransformToOrganizationAccount(account, admin); if (testOverwrite) { if (requestDate != null) { Assert.True(requestDate < account.OrganizationMigrationRequest.RequestDate); Assert.NotEqual(requestToken, account.OrganizationMigrationRequest.ConfirmationToken); } requestDate = account.OrganizationMigrationRequest.RequestDate; requestToken = account.OrganizationMigrationRequest.ConfirmationToken; await Task.Delay(500); // ensure next requestDate is in future } // Assert service.MockUserRepository.Verify(r => r.CommitChangesAsync(), Times.Once); service.MockUserRepository.ResetCalls(); Assert.NotNull(account.OrganizationMigrationRequest); Assert.Equal(account, account.OrganizationMigrationRequest.NewOrganization); Assert.Equal(admin, account.OrganizationMigrationRequest.AdminUser); Assert.False(String.IsNullOrEmpty(account.OrganizationMigrationRequest.ConfirmationToken)); if (testOverwrite) { admin = CreateAdminUser(); } } }