Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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());
        }