public async Task Preprovisioned_UpdatesUser()
        {
            using (var destination =
                       new EfDataContext <DestinationDbContext>(new DestinationDbContext(_dstConnection)) as IDataTarget)
            {
                var dstEntity = new DestinationUser
                {
                    EmailAddress   = "*****@*****.**",
                    SamAccountName = "gosho"
                };
                await destination.ProvisionAsync(dstEntity);

                dstEntity.EmailAddress   = "*****@*****.**";
                dstEntity.SamAccountName = "pesho";

                var changedEntity      = dstEntity;
                var provisioningStatus = await destination.ProvisionAsync(changedEntity);

                Assert.Multiple(() =>
                {
                    Assert.That(provisioningStatus.State,
                                Is.EqualTo(ProvisioningState.Updated));
                    Assert.That(provisioningStatus.Entities.First().EmailAddress,
                                Is.EqualTo(dstEntity.EmailAddress));
                }
                                );
            }
        }
        public void InitialProvisioning_CreatesUser()
        {
            using (var destination =
                       new EfDataContext <DestinationDbContext>(new DestinationDbContext(_dstConnection)) as IDataTarget)
            {
                var dstEntity = new DestinationUser
                {
                    EmailAddress   = "*****@*****.**",
                    SamAccountName = "pesho"
                };

                AsyncTestDelegate @delegate = async() =>
                {
                    Assert.That((await destination.GetProvisioningStatusAsync(dstEntity)).State,
                                Is.EqualTo(ProvisioningState.Inexistent));
                    Assert.That((await destination.ProvisionAsync(dstEntity)).State,
                                Is.EqualTo(ProvisioningState.Created));
                    Assert.That((await destination.GetProvisioningStatusAsync(dstEntity)).State,
                                Is.EqualTo(ProvisioningState.Unmodified));
                };


                Assert.Multiple(@delegate);
            }
        }