public void TestGetPropertyAutoComplete()
        {
            INakedObject autoCompleteRepo   = NakedObjectsFramework.GetAdaptedService("AutoCompleteRepository");
            object       autoCompleteObject = autoCompleteRepo.GetDomainObject <AutoCompleteRepository>().GetAutoCompleteObject();

            string id = NakedObjectsFramework.GetObjectId(autoCompleteObject);

            const string parm1Id = "AutoCompleteObject-Name-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parm1Id, "" }
            });

            JsonResult result = controller.GetPropertyCompletions(id, "AProperty", "");

            var list = result.Data as IList <object>;

            Assert.AreEqual(2, list.Count);

            var nv1 = new RouteValueDictionary(list[0]);
            var nv2 = new RouteValueDictionary(list[1]);

            Assert.AreEqual("value5", nv1["label"]);
            Assert.AreEqual("value5", nv1["value"]);
            Assert.AreEqual("value5", nv1["link"]);
            Assert.AreEqual("/Images/Default.png", nv1["src"]);
            Assert.AreEqual("String", nv1["alt"]);

            Assert.AreEqual("value6", nv2["label"]);
            Assert.AreEqual("value6", nv2["value"]);
            Assert.AreEqual("value6", nv2["link"]);
            Assert.AreEqual("/Images/Default.png", nv2["src"]);
            Assert.AreEqual("String", nv1["alt"]);
        }
Exemple #2
0
        public void GetObjectIdForObject()
        {
            Claim  claim = NakedObjectsFramework.Persistor.Instances <Claim>().First();
            string id    = NakedObjectsFramework.GetObjectId(claim);

            Assert.AreEqual(id, objectId);
        }
Exemple #3
0
        public void GetCollectionNakedObjectFromId()
        {
            IList <Claim>       claims = NakedObjectsFramework.GetService <ClaimRepository>().FindMyClaims(null, "");
            INakedObjectAdapter no     = NakedObjectsFramework.NakedObjectManager.CreateAdapter(claims, null, null);

            INakedObjectAdapter service = NakedObjectsFramework.ServicesManager.GetService("ClaimRepository");
            IActionSpec         action  = service.Spec.GetActions().Single(a => a.Id == "FindMyClaims");

            INakedObjectAdapter[] parms = new[] { null, "" }.Select(o => NakedObjectsFramework.NakedObjectManager.CreateAdapter(o, null, null)).ToArray();

            var cm    = CollectionMementoHelper.TestMemento(NakedObjectsFramework.LifecycleManager, NakedObjectsFramework.NakedObjectManager, NakedObjectsFramework.MetamodelManager, service, action, parms);

            no.SetATransientOid(cm);

            string id = NakedObjectsFramework.GetObjectId(no);

            INakedObjectAdapter no2 = NakedObjectsFramework.GetNakedObjectFromId(id);

            List <Claim> claims2 = no2.GetDomainObject <IEnumerable <Claim> >().ToList();

            Assert.AreEqual(claims.Count(), claims2.Count());

            int index = 0;
            Dictionary <Claim, Claim> dict = claims.ToDictionary(x => x, y => claims2.Skip(index++).First());

            dict.ForEach(kvp => Assert.AreSame(kvp.Key, kvp.Value));
        }
        public void TestGetPropertyChoicesOtherValue()
        {
            INakedObject choicesRepo   = NakedObjectsFramework.GetAdaptedService("ChoicesRepository");
            object       choicesObject = choicesRepo.GetDomainObject <ChoicesRepository>().GetChoicesObject();


            string id = NakedObjectsFramework.GetObjectId(choicesObject);

            const string parm1Id = "ChoicesObject-Name-Input0";
            const string parm2Id = "ChoicesObject-AProperty-Input0";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parm1Id, "AName" }, { parm2Id, "" }
            });

            JsonResult result = controller.GetPropertyChoices(id);

            Assert.IsInstanceOf <IDictionary <string, string[][]> >(result.Data);

            var dict = result.Data as IDictionary <string, string[][]>;

            Assert.AreEqual(1, dict.Count);
            Assert.IsTrue(dict.ContainsKey("ChoicesObject-AProperty-Input"));

            Assert.IsTrue(dict["ChoicesObject-AProperty-Input"][0].SequenceEqual(new[] { "AName-A", "AName-B" }));
            Assert.IsTrue(dict["ChoicesObject-AProperty-Input"][1].SequenceEqual(new[] { "AName-A", "AName-B" }));
        }
        public void TestGetActionMultipleChoicesDefault()
        {
            INakedObject choicesRepo = NakedObjectsFramework.GetAdaptedService("ChoicesRepository");

            const string actionName = "AnActionMultiple";

            string id = NakedObjectsFramework.GetObjectId(choicesRepo);

            const string parm1Id = "ChoicesRepository-AnActionMultiple-Parm1-Select0";
            const string parm2Id = "ChoicesRepository-AnActionMultiple-Parm2-Select0";
            const string parm3Id = "ChoicesRepository-AnActionMultiple-Parm3-Select0";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parm1Id, "" }, { parm2Id, "" }, { parm3Id, "" },
            });

            JsonResult result = controller.GetActionChoices(id, actionName);

            Assert.IsInstanceOf <IDictionary <string, string[][]> >(result.Data);

            var dict = result.Data as IDictionary <string, string[][]>;

            Assert.AreEqual(2, dict.Count);
            Assert.IsTrue(dict.ContainsKey("ChoicesRepository-AnActionMultiple-Parm1-Select"));
            Assert.IsTrue(dict.ContainsKey("ChoicesRepository-AnActionMultiple-Parm2-Select"));

            Assert.IsTrue(dict["ChoicesRepository-AnActionMultiple-Parm1-Select"][0].SequenceEqual(new[] { "value1", "value2" }));
            Assert.IsTrue(dict["ChoicesRepository-AnActionMultiple-Parm2-Select"][0].SequenceEqual(new string[] {}));

            Assert.IsTrue(dict["ChoicesRepository-AnActionMultiple-Parm1-Select"][1].SequenceEqual(new[] { "value1", "value2" }));
            Assert.IsTrue(dict["ChoicesRepository-AnActionMultiple-Parm2-Select"][1].SequenceEqual(new string[] {}));
        }
Exemple #6
0
        public void TestGetActionChoicesConditionalFailParse()
        {
            INakedObjectAdapter choicesRepo = NakedObjectsFramework.GetAdaptedService("ChoicesRepository");

            const string actionName = "AnActionConditionalChoices";

            string id = NakedObjectsFramework.GetObjectId(choicesRepo);

            const string parm1Id = "ChoicesRepository-AnActionConditionalChoices-Parm1-Input0";
            const string parm2Id = "ChoicesRepository-AnActionConditionalChoices-Parm2-Input0";
            const string parm3Id = "ChoicesRepository-AnActionConditionalChoices-Parm3-Input0";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parm1Id, "Fred" }, { parm2Id, "1" }, { parm3Id, "cannotparseasdate" }
            });

            JsonResult result = controller.GetActionChoices(id, actionName);

            Assert.IsInstanceOf <IDictionary <string, string[][]> >(result.Data);

            var dict = result.Data as IDictionary <string, string[][]>;

            Assert.AreEqual(1, dict.Count);
            Assert.IsTrue(dict.ContainsKey("ChoicesRepository-AnActionConditionalChoices-Parm1-Input"));

            Assert.IsTrue(dict["ChoicesRepository-AnActionConditionalChoices-Parm1-Input"][0].SequenceEqual(new[] { "value1", "value2" }));

            Assert.IsTrue(dict["ChoicesRepository-AnActionConditionalChoices-Parm1-Input"][1].SequenceEqual(new[] { "value1", "value2" }));
        }
Exemple #7
0
        public void GetObjectIdForGenericObject()
        {
            object repo = GetTestService("Custom Helper Test Classes").NakedObject.Object;
            string id   = NakedObjectsFramework.GetObjectId(repo);

            Assert.AreEqual(genericObjectId, id);
        }
Exemple #8
0
        public void GetNakedObjectFromId()
        {
            Claim claim1 = NakedObjectsFramework.Persistor.Instances <Claim>().First();
            var   id     = NakedObjectsFramework.GetObjectId(claim1);

            INakedObjectAdapter claim2 = NakedObjectsFramework.GetNakedObjectFromId(objectId);

            Assert.AreSame(claim1, claim2.Object);
        }
Exemple #9
0
        [Test] // fix later
        public void GetGenericObjectFromId()
        {
            var repo1 = GetTestService("Custom Helper Test Classes").NakedObject.Object;
            var id    = NakedObjectsFramework.GetObjectId(repo1);

            object repo2 = NakedObjectsFramework.GetObjectFromId(id);

            Assert.AreSame(repo1, repo2);
        }
Exemple #10
0
        public FormCollection GetFormForOrderEdit(IObjectFacade order,
                                                  SalesOrderHeader soh,
                                                  string modifiedDate,
                                                  out IDictionary <string, string> idToRawValue)
        {
            var nakedObjectSpecification = order.Specification;
            var assocS  = nakedObjectSpecification.Properties.Single(p => p.Id == "Status");
            var assocSC = nakedObjectSpecification.Properties.Single(p => p.Id == "StoreContact");
            var assocBA = nakedObjectSpecification.Properties.Single(p => p.Id == "BillingAddress");
            var assocPO = nakedObjectSpecification.Properties.Single(p => p.Id == "PurchaseOrderNumber");
            var assocSA = nakedObjectSpecification.Properties.Single(p => p.Id == "ShippingAddress");
            var assocSM = nakedObjectSpecification.Properties.Single(p => p.Id == "ShipMethod");
            var assocAN = nakedObjectSpecification.Properties.Single(p => p.Id == "AccountNumber");
            var assocCR = nakedObjectSpecification.Properties.Single(p => p.Id == "CurrencyRate");
            var assocCC = nakedObjectSpecification.Properties.Single(p => p.Id == "CreditCard");
            var assocC  = nakedObjectSpecification.Properties.Single(p => p.Id == "Comment");
            var assocSP = nakedObjectSpecification.Properties.Single(p => p.Id == "SalesPerson");
            var assocST = nakedObjectSpecification.Properties.Single(p => p.Id == "SalesTerritory");
            var assocMD = nakedObjectSpecification.Properties.Single(p => p.Id == "ModifiedDate");

            string idS  = IdHelper.GetFieldInputId(order, (assocS));
            string idSC = IdHelper.GetFieldInputId(order, (assocSC));
            string idBA = IdHelper.GetFieldInputId(order, (assocBA));
            string idPO = IdHelper.GetFieldInputId(order, (assocPO));
            string idSA = IdHelper.GetFieldInputId(order, (assocSA));
            string idSM = IdHelper.GetFieldInputId(order, (assocSM));
            string idAN = IdHelper.GetFieldInputId(order, (assocAN));
            string idCR = IdHelper.GetFieldInputId(order, (assocCR));
            string idCC = IdHelper.GetFieldInputId(order, (assocCC));
            string idC  = IdHelper.GetFieldInputId(order, (assocC));
            string idSP = IdHelper.GetFieldInputId(order, (assocSP));
            string idST = IdHelper.GetFieldInputId(order, (assocST));
            string idMD = IdHelper.GetConcurrencyFieldInputId((order), (assocMD));

            var ct  = soh.Contact;
            var cus = soh.Customer;
            var sc  = FindStoreContactForContact(ct, cus);

            idToRawValue = new Dictionary <string, string> {
                { idS, soh.Status.ToString() },
                { idSC, NakedObjectsFramework.GetObjectId(sc) },
                { idBA, NakedObjectsFramework.GetObjectId(soh.BillingAddress) },
                { idPO, soh.PurchaseOrderNumber },
                { idSA, NakedObjectsFramework.GetObjectId(soh.ShippingAddress) },
                { idSM, NakedObjectsFramework.GetObjectId(soh.ShipMethod) },
                { idAN, soh.AccountNumber },
                { idCR, "" },
                { idCC, NakedObjectsFramework.GetObjectId(soh.CreditCard) },
                { idC, Guid.NewGuid().ToString() },
                { idSP, NakedObjectsFramework.GetObjectId(soh.SalesPerson) },
                { idST, NakedObjectsFramework.GetObjectId(soh.SalesTerritory) },
                { idMD, modifiedDate }
            };

            return(GetForm(idToRawValue));
        }
        public void TestValidateOkRefProperty()
        {
            Store       store       = NakedObjectsFramework.Persistor.Instances <Store>().First();
            SalesPerson salesPerson = NakedObjectsFramework.Persistor.Instances <SalesPerson>().First();

            string       id           = NakedObjectsFramework.GetObjectId(store);
            string       value        = NakedObjectsFramework.GetObjectId(salesPerson);
            const string propertyName = "SalesPerson";

            JsonResult result = controller.ValidateProperty(id, value, propertyName);

            Assert.IsTrue((bool)result.Data);
        }
        public void TestValidateFailRefProperty()
        {
            Store store  = NakedObjectsFramework.Persistor.Instances <Store>().First();
            Store store1 = NakedObjectsFramework.Persistor.Instances <Store>().OrderBy(x => "").Skip(1).First();

            string       id           = NakedObjectsFramework.GetObjectId(store);
            string       value        = NakedObjectsFramework.GetObjectId(store1);
            const string propertyName = "SalesPerson";

            JsonResult result = controller.ValidateProperty(id, value, propertyName);

            Assert.AreEqual("Not a suitable type; must be a Sales Person", result.Data);
        }
Exemple #13
0
        public void TestValidateOkRefParameter()
        {
            Store        store         = NakedObjectsFramework.Persistor.Instances <Store>().First();
            const string actionName    = "CreateNewOrder";
            const string parameterName = "customer";

            string id    = NakedObjectsFramework.GetObjectId(store);
            string value = NakedObjectsFramework.GetObjectId(store);

            JsonResult result = controller.ValidateParameter(id, value, actionName, parameterName);

            Assert.IsTrue((bool)result.Data);
        }
        public void TestValidateFailRefParameter()
        {
            Store        store         = NakedObjectsFramework.Persistor.Instances <Store>().First();
            Vendor       vendor        = NakedObjectsFramework.Persistor.Instances <Vendor>().First();
            const string actionName    = "CreateNewOrder";
            const string parameterName = "customer";

            string id    = NakedObjectsFramework.GetObjectId(store);
            string value = NakedObjectsFramework.GetObjectId(vendor);

            JsonResult result = controller.ValidateParameter(id, value, actionName, parameterName);

            Assert.AreEqual("Not a suitable type; must be a Customer", result.Data);
        }
        public void TestValidateFailValueProperty()
        {
            Vendor       vendor       = NakedObjectsFramework.Persistor.Instances <Vendor>().First();
            string       id           = NakedObjectsFramework.GetObjectId(vendor);
            const string value        = "";
            const string propertyName = "AccountNumber";
            const string fieldId      = "Vendor-AccountNumber-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { fieldId, value }
            });

            JsonResult result = controller.ValidateProperty(id, null, propertyName);

            Assert.AreEqual("Mandatory", result.Data);
        }
        public void TestValidateOkInlineValueProperty()
        {
            TimePeriod   timePeriod   = NakedObjectsFramework.Persistor.Instances <Shift>().First().Times;
            string       id           = NakedObjectsFramework.GetObjectId(timePeriod);
            string       value        = DateTime.Now.ToString();
            const string propertyName = "StartTime";
            const string fieldId      = "Times-TimePeriod-StartTime-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { fieldId, value }
            });

            JsonResult result = controller.ValidateProperty(id, null, propertyName);

            Assert.IsTrue((bool)result.Data);
        }
        public void TestValidateOkValueProperty()
        {
            Vendor       vendor       = NakedObjectsFramework.Persistor.Instances <Vendor>().First();
            string       uniqueActNum = Guid.NewGuid().ToString().Remove(14);
            string       id           = NakedObjectsFramework.GetObjectId(vendor);
            string       value        = uniqueActNum;
            const string propertyName = "AccountNumber";
            const string fieldId      = "Vendor-AccountNumber-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { fieldId, value }
            });

            JsonResult result = controller.ValidateProperty(id, null, propertyName);

            Assert.IsTrue((bool)result.Data);
        }
Exemple #18
0
        public void EditSaveEFConcurrencyFail()
        {
            SalesOrderHeader             order        = Order;
            IObjectFacade                adaptedOrder = Surface.GetObject(order);
            IDictionary <string, string> idToRawvalue;

            FormCollection form = GetFormForOrderEdit(adaptedOrder, order, order.ModifiedDate.ToString(CultureInfo.InvariantCulture), out idToRawvalue);

            var objectModel = new ObjectAndControlData {
                Id = NakedObjectsFramework.GetObjectId(order)
            };

            NakedObjectsFramework.TransactionManager.StartTransaction();
            var conn = new SqlConnection(@"Data Source=" + Constants.Server + @";Initial Catalog=AdventureWorks;Integrated Security=True");

            conn.Open();

            try {
                controller.Edit(objectModel, form);

                // change order in database

                string updateOrder = string.Format("update Sales.SalesOrderHeader set ModifiedDate = GETDATE() where SalesOrderID = '{0}'", order.SalesOrderID);


                using (var cmd = new SqlCommand(updateOrder)
                {
                    Connection = conn
                }) {
                    cmd.ExecuteNonQuery();
                }


                Surface.End(true);

                Assert.Fail("Expect concurrency exception");
            }
            catch (PreconditionFailedNOSException expected) {
                Assert.AreSame(order, expected.SourceNakedObject.Object);
            }
            finally {
                conn.Close();
            }
        }
Exemple #19
0
        public void AAInvokeObjectActionConcurrencyFail()
        {
            SalesOrderHeader order = Order;
            var objectModel        = new ObjectAndControlData {
                ActionId     = "Recalculate",
                Id           = NakedObjectsFramework.GetObjectId(order),
                InvokeAction = "action=action"
            };

            try {
                controller.Action(objectModel, GetForm(new Dictionary <string, string> {
                    { "SalesOrderHeader-Recalculate-ModifiedDate-Concurrency", DateTime.Now.ToString(CultureInfo.InvariantCulture) }
                }));
                Assert.Fail("Expected concurrency exception");
            }
            catch (PreconditionFailedNOSException expected) {
                Assert.AreSame(order, expected.SourceNakedObject.Object);
            }
        }
Exemple #20
0
        public void TestValidateOkValueParameter()
        {
            INakedObjectAdapter contactRepo = NakedObjectsFramework.GetAdaptedService("ContactRepository");

            const string actionName    = "FindContactByName";
            const string parameterName = "lastName";

            string       id     = NakedObjectsFramework.GetObjectId(contactRepo);
            const string value  = "Bloggs";
            const string parmId = "ContactRepository-FindContactByName-LastName-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parmId, value }
            });

            JsonResult result = controller.ValidateParameter(id, null, actionName, parameterName);

            Assert.IsTrue((bool)result.Data);
        }
        public void TestGetActionAutoComplete()
        {
            INakedObject autoCompleteRepo = NakedObjectsFramework.GetAdaptedService("AutoCompleteRepository");

            const string actionName = "AnAction";

            string id = NakedObjectsFramework.GetObjectId(autoCompleteRepo);

            const string parm1Id = "AutoCompleteRepository-AnAction-name-Input";

            mocks.Request.Setup(x => x.Params).Returns(new NameValueCollection {
                { parm1Id, "" }
            });

            JsonResult result = controller.GetActionCompletions(id, actionName, 0, "avalue");

            Assert.IsInstanceOf <List <object> >(result.Data);

            var list = result.Data as IList <object>;

            Assert.AreEqual(2, list.Count);

            var nv1 = new RouteValueDictionary(list[0]);
            var nv2 = new RouteValueDictionary(list[1]);

            Assert.AreEqual("value1", nv1["label"]);
            Assert.AreEqual("value1", nv1["value"]);
            Assert.AreEqual("value1", nv1["link"]);
            Assert.AreEqual("/Images/Default.png", nv1["src"]);
            Assert.AreEqual("String", nv1["alt"]);

            Assert.AreEqual("value2", nv2["label"]);
            Assert.AreEqual("value2", nv2["value"]);
            Assert.AreEqual("value2", nv2["link"]);
            Assert.AreEqual("/Images/Default.png", nv2["src"]);
            Assert.AreEqual("String", nv1["alt"]);
        }