public async Task CreateAsync_SingleItemWithTimeStamps_WhenCreatedTimeStampHasNotBeenSet_ShouldSetCreatedTimeStamp() { // Arrange Dog dog = new("labradoodle", "Thor"); // Act Dog returnedDog = await _dogRepository.CreateAsync(dog); // Assert Dog addedDog = _dogRepository.DeserializeItem(_dogRepository.Items.Values.First()); Assert.Equal(returnedDog.Name, addedDog.Name); Assert.Equal(returnedDog.Id, addedDog.Id); Assert.Equal(returnedDog.Type, addedDog.Type); Assert.Equal(addedDog.Name, dog.Name); Assert.Equal(addedDog.Id, dog.Id); Assert.Equal(addedDog.Type, dog.Type); Assert.NotNull(dog.CreatedTimeUtc); Assert.NotNull(returnedDog.CreatedTimeUtc); Assert.NotNull(addedDog.CreatedTimeUtc); Assert.InRange(dog.CreatedTimeUtc !.Value, DateTime.UtcNow.AddSeconds(-1), DateTime.UtcNow.AddSeconds(1)); Assert.InRange(returnedDog.CreatedTimeUtc !.Value, DateTime.UtcNow.AddSeconds(-1), DateTime.UtcNow.AddSeconds(1)); Assert.InRange(addedDog.CreatedTimeUtc !.Value, DateTime.UtcNow.AddSeconds(-1), DateTime.UtcNow.AddSeconds(1)); }
public async Task CreateAsync_WhenTypeCannotBeDeserialised_StoresTheRecordAndThrowsCosmosException() { //Arrange InvalidSerialisableArguments args = new("id", "property1"); InvalidSerialisable invalidSerialisable = new(args); //Act //Assert await Assert.ThrowsAsync <NullReferenceException>(() => _invalidSerialisableRepository.CreateAsync(invalidSerialisable).AsTask()); Assert.True(_invalidSerialisableRepository.Items.ContainsKey(invalidSerialisable.Id)); Assert.Equal(args.Property1, _invalidSerialisableRepository.DeserializeItem <ValidInvalidSerialisable>(_invalidSerialisableRepository.Items[invalidSerialisable.Id]).Property1); Assert.Equal(args.PartitionKey, _invalidSerialisableRepository.DeserializeItem <ValidInvalidSerialisable>(_invalidSerialisableRepository.Items[invalidSerialisable.Id]).PartitionKey); }
public async Task CreateAsync_Item_CreatesItem() { //Arrange Person item = new("joe") { Id = Guid.NewGuid().ToString(), Type = nameof(Person) }; //Act Person person = await _personRepository.CreateAsync(item); Person addedPerson = _personRepository.DeserializeItem(_personRepository.Items.Values.First()); Assert.Equal(item.Name, person.Name); Assert.Equal(item.Id, person.Id); Assert.Equal(item.Type, person.Type); Assert.Equal(item.Name, addedPerson.Name); Assert.Equal(item.Id, addedPerson.Id); Assert.Equal(item.Type, addedPerson.Type); Assert.True(!string.IsNullOrWhiteSpace(addedPerson.Etag) && addedPerson.Etag != Guid.Empty.ToString()); }