Esempio n. 1
0
        public void ApplicationIdentifierEmpty()
        {
            var row = new UserProfileRow();

            Assert.AreEqual <Guid>(Guid.Empty, row.ApplicationIdentifier);
            Assert.IsNull(row.PartitionKey);
        }
Esempio n. 2
0
        public void Handle()
        {
            var data = StringHelper.ValidString();
            var row  = new UserProfileRow(Guid.NewGuid(), data);

            Assert.AreEqual <string>(data, row.RowKey);
        }
Esempio n. 3
0
        public void Word()
        {
            var row  = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString());
            var data = StringHelper.ValidString();

            row.Word = data;
            Assert.AreEqual <string>(data, row.Word);
        }
Esempio n. 4
0
        public void OwnerIdentifier()
        {
            var row  = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString());
            var data = Guid.NewGuid();

            row.OwnerIdentifier = data;
            Assert.AreEqual <Guid>(data, row.OwnerIdentifier);
        }
Esempio n. 5
0
        public void ApplicationIdentifier()
        {
            var data = Guid.NewGuid();
            var row  = new UserProfileRow(data, StringHelper.ValidString());

            Assert.AreEqual <Guid>(data, row.ApplicationIdentifier);
            Assert.AreEqual <string>(data.ToString(), row.PartitionKey);
        }
Esempio n. 6
0
        /// <summary>
        /// Save Profile Page
        /// </summary>
        /// <param name="page">Page</param>
        /// <returns>Profile Page</returns>
        public ProfilePage Save(ProfilePage page)
        {
            Contract.Requires <ArgumentNullException>(null != page);
            Contract.Requires <ArgumentException>(Guid.Empty != page.ApplicationIdentifier);
            Contract.Requires <ArgumentException>(Guid.Empty != page.OwnerIdentifier);
            Contract.Requires <ArgumentException>(!string.IsNullOrWhiteSpace(page.Handle));

            var row = page.Convert();

            var            table      = new AzureTable <UserProfileRow>(ServerConfiguration.Default);
            UserProfileRow oldProfile = null;
            UserProfileRow newProfile = null;

            try
            {
                oldProfile = table.QueryBy(row.PartitionKey, page.ExistingHandle.ToLowerInvariant());
            }
            catch (Exception ex)
            {
                Logging.Log(ex, EventTypes.Warning, (int)ServiceFault.ProfileDoesntExist);
            }

            try
            {
                newProfile = table.QueryBy(row.PartitionKey, page.Handle.ToLowerInvariant());
            }
            catch (Exception ex)
            {
                Logging.Log(ex, EventTypes.Warning, (int)ServiceFault.ProfileDoesntExist);
            }

            if (null == newProfile)
            {
                table.AddEntity(row);
            }
            else if (newProfile.OwnerIdentifier == row.OwnerIdentifier)
            {
                table.AddOrUpdateEntity(row);
            }
            else
            {
                throw new InvalidOperationException("User doesn't own profile");
            }

            if (null != oldProfile)
            {
                if (oldProfile.OwnerIdentifier == row.OwnerIdentifier)
                {
                    table.DeleteBy(oldProfile.PartitionKey, oldProfile.RowKey);
                }
                else
                {
                    throw new InvalidOperationException("User doesn't own profile");
                }
            }

            return(page);
        }
Esempio n. 7
0
        public void PreferedProfile()
        {
            var row = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString());

            Assert.IsNull(row.PreferedProfile);
            var data = true;

            row.PreferedProfile = data;
            Assert.AreEqual <bool?>(data, row.PreferedProfile);
        }
Esempio n. 8
0
        public void Points()
        {
            var random = new Random();
            var row    = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString());

            Assert.IsNull(row.Points);
            var data = random.Next();

            row.Points = data;
            Assert.AreEqual <int?>(data, row.Points);
        }
Esempio n. 9
0
        public void ConvertPreferedProfile()
        {
            var row = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString())
            {
                OwnerIdentifier = Guid.NewGuid(),
                PreferedProfile = true,
            };

            var item = row.Convert();

            Assert.AreEqual <Guid>(row.ApplicationIdentifier, item.ApplicationIdentifier);
            Assert.AreEqual <Guid>(row.OwnerIdentifier, item.OwnerIdentifier);
            Assert.AreEqual <string>(row.RowKey, item.Handle);
            Assert.IsTrue(row.PreferedProfile.Value);
        }
Esempio n. 10
0
        public void Convert()
        {
            var row = new UserProfileRow(Guid.NewGuid(), StringHelper.ValidString())
            {
                OwnerIdentifier = Guid.NewGuid(),
                Word            = StringHelper.ValidString(),
            };

            var item = row.Convert();

            Assert.AreEqual <Guid>(row.ApplicationIdentifier, item.ApplicationIdentifier);
            Assert.AreEqual <Guid>(row.OwnerIdentifier, item.OwnerIdentifier);
            Assert.AreEqual <string>(row.RowKey, item.Handle);
            Assert.AreEqual <string>(row.Word, item.Word);
            Assert.IsFalse(item.PreferedProfile);
            Assert.AreEqual <int>(0, item.Points);
        }