public async Task WhenRunTwice_AndUpdatingOneTimestamp_ItShouldBeIdempotent() { await this.DatabaseTestAsync(async testDatabase => { this.target = new UpdateUserTimeStampsDbStatement(testDatabase); await this.CreateUserAsync(testDatabase); await this.target.UpdateAccessTokenAsync(UserId, TimeStamp); await testDatabase.TakeSnapshotAsync(); await this.target.UpdateAccessTokenAsync(UserId, TimeStamp); return(ExpectedSideEffects.None); }); }
public async Task WhenTheUserIdIsInvalid_AndUpdatingBothTimestamps_ItShouldNotUpdateTheDatabase() { await this.DatabaseTestAsync(async testDatabase => { this.target = new UpdateUserTimeStampsDbStatement(testDatabase); await this.CreateUserAsync(testDatabase); await testDatabase.TakeSnapshotAsync(); await this.target.UpdateSignInAndAccessTokenAsync(new UserId(Guid.NewGuid()), TimeStamp); return(ExpectedSideEffects.None); }); }
public async Task WhenTheUserIdIsValid_AndUpdatingOneTimestamp_ItShouldUpdateTheDatabase() { await this.DatabaseTestAsync(async testDatabase => { this.target = new UpdateUserTimeStampsDbStatement(testDatabase); await this.CreateUserAsync(testDatabase); await testDatabase.TakeSnapshotAsync(); var expectedUser = await this.GetUserAsync(testDatabase); expectedUser.LastAccessTokenDate = TimeStamp; await this.target.UpdateAccessTokenAsync(UserId, TimeStamp); return(new ExpectedSideEffects { Update = expectedUser }); }); }
public void TestInitialize() { this.connectionFactory = new Mock <IFifthweekDbConnectionFactory>(MockBehavior.Strict); this.target = new UpdateUserTimeStampsDbStatement(this.connectionFactory.Object); }