public async Task Insert_Duplicated_Entity_Exception()
        {
            var prodId        = "DuplicatedId" + DateTime.UtcNow.ToString();
            var ExampleEntity = new ExampleEntity()
            {
                Id = prodId
            };

            await this._prodRepository.Insert(ExampleEntity);

            await this._prodRepository.Insert(ExampleEntity);
        }
        public async Task Get_Valid_Entity_Success()
        {
            var ExampleEntity = new ExampleEntity()
            {
                Name = "ExampleEntity" + DateTime.UtcNow.ToString()
            };

            var insertedExampleEntity = await this._prodRepository.Insert(ExampleEntity);

            var ExampleEntityResult = await this._prodRepository.Get(insertedExampleEntity.Id);

            Assert.AreEqual(ExampleEntityResult.Id, insertedExampleEntity.Id);
            Assert.AreEqual(ExampleEntityResult.Name, ExampleEntity.Name);
        }
        public async Task Delete_Valid_Entity_Success()
        {
            var ExampleEntity = new ExampleEntity()
            {
                Name = "ExampleEntity" + DateTime.UtcNow.ToString()
            };

            var insertedExampleEntity = await this._prodRepository.Insert(ExampleEntity);

            var getExampleEntity = await this._prodRepository.Get(insertedExampleEntity.Id);

            Assert.IsNotNull(getExampleEntity);
            Assert.AreEqual(getExampleEntity.Id, insertedExampleEntity.Id);

            var deletedExampleEntity = await this._prodRepository.Delete(getExampleEntity.Id);

            Assert.IsNotNull(deletedExampleEntity);
            Assert.AreEqual(deletedExampleEntity.Id, getExampleEntity.Id);
        }
        public async Task Update_Version_Conflit_Entity_Exception()
        {
            var ExampleEntityName = "ExampleEntity" + DateTime.UtcNow.ToString();

            var ExampleEntity = new ExampleEntity()
            {
                Name = ExampleEntityName
            };

            var insertedExampleEntity = await this._prodRepository.Insert(ExampleEntity);

            var ExampleEntityResult1 = await this._prodRepository.Get(insertedExampleEntity.Id);

            var ExampleEntityResult2 = await this._prodRepository.Get(insertedExampleEntity.Id);

            var updatedExampleEntity1 = await this._prodRepository.Update(ExampleEntityResult1);

            var updatedExampleEntity2 = await this._prodRepository.Update(ExampleEntityResult2);
        }
        public async Task Update_Valid_Entity_Success()
        {
            var ExampleEntityName        = "ExampleEntity" + DateTime.UtcNow.ToString();
            var updatedExampleEntityName = "Updated Name";

            var ExampleEntity = new ExampleEntity()
            {
                Name = ExampleEntityName
            };

            var insertedExampleEntity = await this._prodRepository.Insert(ExampleEntity);

            var ExampleEntityResult = await this._prodRepository.Get(insertedExampleEntity.Id);

            ExampleEntityResult.Name = updatedExampleEntityName;

            var updatedExampleEntity = await this._prodRepository.Update(ExampleEntityResult);

            Assert.AreEqual(updatedExampleEntity.Name, updatedExampleEntityName);
            Assert.IsTrue(updatedExampleEntity.Version > insertedExampleEntity.Version);
        }