Example #1
0
        public void TestEqualsTrue()
        {
            IFilter filter1 = new PropertyTypeFilter("casa");
            IFilter filter2 = new PropertyTypeFilter("casa");

            Assert.IsTrue(filter1.Equals(filter2));
        }
Example #2
0
        public void TestEqualsFalse()
        {
            IFilter filter1 = new PropertyTypeFilter("casa");
            IFilter filter2 = new PropertyTypeFilter("apartamento");

            Assert.IsFalse(filter1.Equals(filter2));
        }
        public void TestParseInputMultiplesFiltros()
        {
            Database database = SingleInstance <DatabaseMap> .GetInstance.GetDatabaseInstance(1);

            IInterpreter interpreter = new SimpleInterpreter();

            // se la crea para setearla en la database debido a que eso solo se realiza de forma
            // automática en el programa al recibir mensajes
            ConsoleChannel console = new ConsoleChannel();

            database.SetAdapter(console);

            TransactionTypeFilter transactionTypeFilter = new TransactionTypeFilter("compra");
            DepartmentFilter      departmentFilter      = new DepartmentFilter("canelones");
            PropertyTypeFilter    propertyTypeFilter    = new PropertyTypeFilter("casa");

            List <IFilter> filters = new List <IFilter>();

            filters.Add(transactionTypeFilter);
            filters.Add(departmentFilter);
            filters.Add(propertyTypeFilter);

            database.SetState(Status.WaitingTransactionType);
            interpreter.ParseInput(1, "2");
            interpreter.ParseInput(1, "canelones");
            interpreter.ParseInput(1, "1");

            Assert.IsTrue(database.GetFilters().SequenceEqual(filters));
        }
Example #4
0
        public void TestAskAndParseAPI()
        {
            Database database = new Database(1);

            Database database2 = new Database(5);

            APIInfoCasas apiCore = new APIInfoCasas();

            ICApi api = new ICApi();

            api.SetDepartment("montevideo");
            api.SetPropertyTypes(new PropertyType[] { PropertyType.Apartamento });
            api.SetTransactionType(TransactionType.Alquiler);
            api.SetCitiesAndNeighbourhoods(new string[] { "buceo" });

            List <IFilter> filters = new List <IFilter>();

            DepartmentFilter      department            = new DepartmentFilter("montevideo");
            PropertyTypeFilter    propertyTypeFilter    = new PropertyTypeFilter("apartamento");
            TransactionTypeFilter transactionTypeFilter = new TransactionTypeFilter("alquiler");
            NeighbourhoodFilter   neighbourhoodFilter   = new NeighbourhoodFilter("buceo");

            filters.Add(department);
            filters.Add(propertyTypeFilter);
            filters.Add(transactionTypeFilter);
            filters.Add(neighbourhoodFilter);

            apiCore.AskAPI(filters, 1);

            List <ICApiSearchResult> apiResult = api.Search();

            apiCore.Parse(apiResult, 5, "buceo");

            Assert.IsTrue(database.GetPropertyList().SequenceEqual(database2.GetPropertyList()));
        }
            public void ReturnsPropertyWithGivenType()
            {
                Assert.Same(selected, members.Property(propertyType));
                PropertyTypeFilter filter = VerifyFilter(selection, propertyType);

                Assert.Same(properties, filter.Source);
            }
Example #6
0
        public static Property Property(this IMembers members, Type propertyType, string propertyName)
        {
            var typed = new PropertyTypeFilter(members.Properties(), propertyType);
            var named = new MemberNameFilter <Property, PropertyInfo>(typed, propertyName);

            return(named.Single());
        }
Example #7
0
            public void ReturnsPropertyWithGivenType()
            {
                Assert.Same(selected, instance.Property(propertyType));

                PropertyTypeFilter named = VerifyFilter(selection, propertyType);

                VerifyInstanceProperties(named.Source, instance);
            }
            public void ReturnsPropertyWithGivenTypeAndName()
            {
                Assert.Same(selected, members.Property(propertyType, propertyName));
                MemberNameFilter <Property, PropertyInfo> nameFilter = VerifyFilter(selection, propertyName);
                PropertyTypeFilter typeFilter = VerifyFilter(nameFilter.Source, propertyType);

                Assert.Same(properties, typeFilter.Source);
            }
Example #9
0
            public void ReturnsGenericPropertyOfGivenType()
            {
                Property <PropertyValue> generic = instance.Property <PropertyValue>();

                VerifyGenericProperty(selected, generic);
                PropertyTypeFilter typed = VerifyFilter(selection, typeof(PropertyValue));

                VerifyInstanceProperties(typed.Source, instance);
            }
Example #10
0
            public void ReturnsPropertyWithGivenTypeAndName()
            {
                Assert.Same(selected, instance.Property(propertyType, propertyName));

                MemberNameFilter <Property, PropertyInfo> named = VerifyFilter(selection, propertyName);
                PropertyTypeFilter typed = VerifyFilter(named.Source, propertyType);

                VerifyInstanceProperties(typed.Source, instance);
            }
            public void ReturnsGenericPropertyWithGivenType()
            {
                Property <PropertyValue> generic = members.Property <PropertyValue>();

                VerifyGenericProperty(selected, generic);
                PropertyTypeFilter typeFilter = VerifyFilter(selection, typeof(PropertyValue));

                Assert.Same(properties, typeFilter.Source);
            }
Example #12
0
        public void TestAddFilter()
        {
            Database database = new Database(1);

            database.AddFilter(new PropertyTypeFilter("casa"));

            IFilter filter = new PropertyTypeFilter("casa");

            Assert.IsTrue(database.GetFilters()[0].Equals(filter));
        }
            public void ReturnsGenericPropertyWithGivenTypeAndName()
            {
                Property <PropertyValue> generic = members.Property <PropertyValue>(propertyName);

                VerifyGenericProperty(selected, generic);
                MemberNameFilter <Property, PropertyInfo> nameFilter = VerifyFilter(selection, propertyName);
                PropertyTypeFilter typeFilter = VerifyFilter(nameFilter.Source, propertyType);

                Assert.Same(properties, typeFilter.Source);
            }
Example #14
0
            public void ReturnsGenericPropertyWithGivenTypeAndName()
            {
                Property <PropertyValue> generic = instance.Property <PropertyValue>(propertyName);

                VerifyGenericProperty(selected, generic);
                MemberNameFilter <Property, PropertyInfo> named = VerifyFilter(selection, propertyName);
                PropertyTypeFilter typed = VerifyFilter(named.Source, typeof(PropertyValue));

                VerifyInstanceProperties(typed.Source, instance);
            }
Example #15
0
        public void AddProperties(StringBuilderWrapper sb, MetadataType type, bool includeResponseStatus)
        {
            var wasAdded = false;
            var isClass  = Config.ExportAsTypes && !type.IsInterface.GetValueOrDefault();
            var modifier = isClass ? "public " : "";

            var dataMemberIndex = 1;

            if (type.Properties != null)
            {
                foreach (var prop in type.Properties)
                {
                    if (wasAdded)
                    {
                        sb.AppendLine();
                    }

                    var propType         = Type(prop.GetTypeName(Config, allTypes), prop.GenericArgs);
                    var optionalProperty = propType.EndsWith("?");
                    if (optionalProperty)
                    {
                        propType = propType.Substring(0, propType.Length - 1);
                    }

                    propType = PropertyTypeFilter?.Invoke(this, type, prop) ?? propType;

                    var optional = IsPropertyOptional(this, type, prop) ?? optionalProperty
                        ? "?"
                        : "";

                    wasAdded = AppendComments(sb, prop.Description);
                    wasAdded = AppendDataMember(sb, prop.DataMember, dataMemberIndex++) || wasAdded;
                    wasAdded = AppendAttributes(sb, prop.Attributes) || wasAdded;
                    sb.AppendLine(modifier + "{1}{2}: {0};".Fmt(propType, prop.Name.SafeToken().PropertyStyle(), optional));
                }
            }

            if (includeResponseStatus)
            {
                if (wasAdded)
                {
                    sb.AppendLine();
                }

                AppendDataMember(sb, null, dataMemberIndex++);
                sb.AppendLine(modifier + "{0}{1}: ResponseStatus;".Fmt(
                                  nameof(ResponseStatus).PropertyStyle(), Config.ExportAsTypes ? "" : "?"));
            }
        }
Example #16
0
        public void TestEqualsNullException()
        {
            IFilter filter1 = new PropertyTypeFilter("casa");
            IFilter filter2 = null;

            // el test pasa dado que nunca se llega al Assert.Fail (el equals lanza excepción)
            // y se hace el catch del tipo correcto (NullReferenceException)
            try
            {
                filter1.Equals(filter2);
                Assert.Fail();
            }
            catch (NullReferenceException)
            {
            }
        }
Example #17
0
        public void TestGetFilters()
        {
            Database database = new Database(1);

            List <IFilter> filters = new List <IFilter>();

            database.AddFilter(new PropertyTypeFilter("casa"));
            database.AddFilter(new NeighbourhoodFilter("axh"));
            database.AddFilter(new DepartmentFilter("fsgf"));

            IFilter filter1 = new PropertyTypeFilter("casa");
            IFilter filter2 = new NeighbourhoodFilter("axh");
            IFilter filter3 = new DepartmentFilter("fsgf");

            filters.Add(filter1);
            filters.Add(filter2);
            filters.Add(filter3);

            Assert.IsTrue(database.GetFilters().SequenceEqual(filters));
        }