Example #1
0
        public void CreateRootContainer()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    contextID     = SelectRandomItem(this.DbContext.Contexts).Context_ID;
            string containerName = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for context ID {1}.", containerName, contextID);

            ResetDatabaseContext();

            var dbContainer = this.DbContext.Containers.SingleOrDefault(it => it.Container_ID == container.ContainerID);

            Assert.IsNotNull(dbContainer, String.Format("Failed to retrieve container ID {0} from the database.", container.ContainerID));

            Assert.IsNull(dbContainer.Parent_Container_ID, "Container has parent reference defined when it should not.");

            Assert.AreEqual(container.Name, dbContainer.Name, "Property 'Name' was not created correctly.");
            Assert.AreEqual(container.DataName, dbContainer.Data_Name, "Property 'DataName' was not created correctly.");
            Assert.AreEqual(container.DisplayText, dbContainer.Display_Text, "Property 'DisplayText' was not created correctly.");
            Assert.AreEqual(container.IsRepeating, dbContainer.Is_Repeating, "Property 'IsRepeating' was not created correctly.");
            Assert.AreEqual(container.Sequence, dbContainer.Sequence, "Property 'Sequence' was not created correctly.");
        }
Example #2
0
        public void CreateDuplicateChildContainer_Data_Name()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    parentContainerID = SelectRandomItem(this.DbContext.Containers.Where(it => it.Parent_Container_ID == null)).Container_ID;
            string containerName     = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateChildContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                IsRepeating = true,
                Sequence    = rng.Next(),
            }, parentContainerID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for parent container ID {1}.", containerName, parentContainerID);

            client.CreateChildContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName + "1",
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                IsRepeating = true,
                Sequence    = rng.Next(),
            }, parentContainerID);

            Assert.Fail("Failed to throw exception creating child container with duplicate name.");
        }
Example #3
0
        public void CreateDuplicateRootContainer_Data_Name()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            int    contextID     = SelectRandomItem(this.DbContext.Contexts).Context_ID;
            string containerName = Guid.NewGuid().ToString();

            EAV.Store.IStoreContainer container = client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName,
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.IsNotNull(container, "Failed to create container with name '{0}' for context ID {1}.", containerName, contextID);

            client.CreateRootContainer(new EAVStoreLibrary.StoreContainer()
            {
                Name        = containerName + "1",
                DataName    = containerName.ToUpper(),
                DisplayText = containerName + ":",
                Sequence    = rng.Next(),
            }, contextID);

            Assert.Fail("Failed to throw exception creating root container with duplicate data name.");
        }
Example #4
0
        public void RetrieveNonExistentContainer()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();

            var container = client.RetrieveContainer(-1);

            Assert.IsNull(container, "Unexpected container object retrieved.");
        }
Example #5
0
        public void RetrieveAllContainers()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();

            int nDbContainers     = this.DbContext.Containers.Where(it => it.Parent_Container_ID == null).Count();
            int nClientContainers = client.RetrieveRootContainers(null).Count();

            Assert.AreEqual(nDbContainers, nClientContainers, "The number of containers retrieved by the client does not match the number in the database.");
        }
Example #6
0
        public void DeleteChildContainer()
        {
            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();
            EAVStoreClient.Container dbParentContainer     = SelectRandomItem <EAVStoreClient.Container>(this.DbContext.Containers);
            EAVStoreClient.Container dbContainerIn         = CreateContainer(dbParentContainer.Context_ID, dbParentContainer.Container_ID, Guid.NewGuid().ToString(), rng.Next(), true);

            client.DeleteContainer(dbContainerIn.Container_ID);

            EAVStoreClient.Container dbContainerOut = this.DbContext.Containers.SingleOrDefault(it => it.Container_ID == dbContainerIn.Container_ID);

            Assert.IsNull(dbContainerOut, "Failed to delete container ID {0} from the database.", dbContainerIn.Container_ID);
        }
Example #7
0
        public void RetrieveRandomContainer()
        {
            var dbContainer = SelectRandomItem(this.DbContext.Containers);

            if (dbContainer != null)
            {
                EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();

                var container = client.RetrieveContainer(dbContainer.Container_ID);

                Assert.IsNotNull(container, "Failed to retrieve container {0}.", dbContainer.Container_ID);
                Assert.AreEqual(dbContainer.Container_ID, container.ContainerID, "Container ID values do not match.");
            }
            else
            {
                Assert.Inconclusive("No containers were found in the database.");
            }
        }
Example #8
0
        public void UpdateContainer()
        {
            var    dbContainer    = SelectRandomItem(this.DbContext.Containers);
            string oldName        = dbContainer.Name;
            string oldDataName    = dbContainer.Data_Name;
            string oldDisplayText = dbContainer.Display_Text;
            bool   oldIsRepeating = dbContainer.Is_Repeating;
            int    oldSequence    = dbContainer.Sequence;

            EAV.Store.Clients.IContainerStoreClient client = factory.Create <EAV.Store.Clients.IContainerStoreClient>();

            var container = (EAVStoreLibrary.StoreContainer)dbContainer;

            container.Name        = oldName.Flip();
            container.DataName    = oldDataName.Flip();
            container.DisplayText = oldDisplayText.Flip();
            container.IsRepeating = !oldIsRepeating;
            container.Sequence    = -oldSequence;

            client.UpdateContainer(container);

            ResetDatabaseContext();

            dbContainer = this.dbContext.Containers.Single(it => it.Container_ID == container.ContainerID);

            Assert.AreEqual(container.Name, dbContainer.Name);
            Assert.AreNotEqual(oldName, dbContainer.Name);
            Assert.AreEqual(container.DataName, dbContainer.Data_Name);
            Assert.AreNotEqual(oldDataName, dbContainer.Data_Name);
            Assert.AreEqual(container.DisplayText, dbContainer.Display_Text);
            Assert.AreNotEqual(oldDisplayText, dbContainer.Display_Text);
            Assert.AreEqual(container.IsRepeating, dbContainer.Is_Repeating);
            Assert.AreNotEqual(oldIsRepeating, dbContainer.Is_Repeating);
            Assert.AreEqual(container.Sequence, dbContainer.Sequence);
            Assert.AreNotEqual(oldSequence, dbContainer.Sequence);
        }