... | ... |
@@ -1876,6 +1876,275 @@ is_deeply($result->stash, {}, 'default'); |
1876 | 1876 |
$result->stash->{foo} = 1; |
1877 | 1877 |
is($result->stash->{foo}, 1, 'get and set'); |
1878 | 1878 |
|
1879 |
+test 'delete_at'; |
|
1880 |
+$dbi = DBIx::Custom->connect; |
|
1881 |
+eval { $dbi->execute('drop table table1') }; |
|
1882 |
+$dbi->execute($create_table1_2); |
|
1883 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1884 |
+$dbi->delete_at( |
|
1885 |
+ table => 'table1', |
|
1886 |
+ primary_key => ['key1', 'key2'], |
|
1887 |
+ where => [1, 2], |
|
1888 |
+); |
|
1889 |
+is_deeply($dbi->select(table => 'table1')->all, []); |
|
1890 |
+ |
|
1891 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1892 |
+$dbi->delete_at( |
|
1893 |
+ table => 'table1', |
|
1894 |
+ primary_key => 'key1', |
|
1895 |
+ where => 1, |
|
1896 |
+); |
|
1897 |
+is_deeply($dbi->select(table => 'table1')->all, []); |
|
1898 |
+ |
|
1899 |
+test 'insert_at'; |
|
1900 |
+$dbi = DBIx::Custom->connect; |
|
1901 |
+eval { $dbi->execute('drop table table1') }; |
|
1902 |
+$dbi->execute($create_table1_2); |
|
1903 |
+$dbi->insert_at( |
|
1904 |
+ primary_key => ['key1', 'key2'], |
|
1905 |
+ table => 'table1', |
|
1906 |
+ where => [1, 2], |
|
1907 |
+ param => {key3 => 3} |
|
1908 |
+); |
|
1909 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1910 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1911 |
+is($dbi->select(table => 'table1')->one->{key3}, 3); |
|
1912 |
+ |
|
1913 |
+$dbi->delete_all(table => 'table1'); |
|
1914 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1915 |
+$dbi->insert_at( |
|
1916 |
+ primary_key => 'key1', |
|
1917 |
+ table => 'table1', |
|
1918 |
+ where => 1, |
|
1919 |
+ param => {key2 => 2, key3 => 3} |
|
1920 |
+); |
|
1921 |
+ |
|
1922 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1923 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1924 |
+is($dbi->select(table => 'table1')->one->{key3}, 3); |
|
1925 |
+ |
|
1926 |
+eval { |
|
1927 |
+ $dbi->insert_at( |
|
1928 |
+ table => 'table1', |
|
1929 |
+ primary_key => ['key1', 'key2'], |
|
1930 |
+ where => {}, |
|
1931 |
+ param => {key1 => 1, key2 => 2, key3 => 3}, |
|
1932 |
+ ); |
|
1933 |
+}; |
|
1934 |
+like($@, qr/must be/); |
|
1935 |
+ |
|
1936 |
+$dbi = DBIx::Custom->connect; |
|
1937 |
+eval { $dbi->execute('drop table table1') }; |
|
1938 |
+$dbi->execute($create_table1_2); |
|
1939 |
+$dbi->insert_at( |
|
1940 |
+ {key3 => 3}, |
|
1941 |
+ primary_key => ['key1', 'key2'], |
|
1942 |
+ table => 'table1', |
|
1943 |
+ where => [1, 2], |
|
1944 |
+); |
|
1945 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1946 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1947 |
+is($dbi->select(table => 'table1')->one->{key3}, 3); |
|
1948 |
+ |
|
1949 |
+test 'update_at'; |
|
1950 |
+$dbi = DBIx::Custom->connect; |
|
1951 |
+eval { $dbi->execute('drop table table1') }; |
|
1952 |
+$dbi->execute($create_table1_2); |
|
1953 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1954 |
+$dbi->update_at( |
|
1955 |
+ table => 'table1', |
|
1956 |
+ primary_key => ['key1', 'key2'], |
|
1957 |
+ where => [1, 2], |
|
1958 |
+ param => {key3 => 4} |
|
1959 |
+); |
|
1960 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1961 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1962 |
+is($dbi->select(table => 'table1')->one->{key3}, 4); |
|
1963 |
+ |
|
1964 |
+$dbi->delete_all(table => 'table1'); |
|
1965 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1966 |
+$dbi->update_at( |
|
1967 |
+ table => 'table1', |
|
1968 |
+ primary_key => 'key1', |
|
1969 |
+ where => 1, |
|
1970 |
+ param => {key3 => 4} |
|
1971 |
+); |
|
1972 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1973 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1974 |
+is($dbi->select(table => 'table1')->one->{key3}, 4); |
|
1975 |
+ |
|
1976 |
+$dbi = DBIx::Custom->connect; |
|
1977 |
+eval { $dbi->execute('drop table table1') }; |
|
1978 |
+$dbi->execute($create_table1_2); |
|
1979 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1980 |
+$dbi->update_at( |
|
1981 |
+ {key3 => 4}, |
|
1982 |
+ table => 'table1', |
|
1983 |
+ primary_key => ['key1', 'key2'], |
|
1984 |
+ where => [1, 2] |
|
1985 |
+); |
|
1986 |
+is($dbi->select(table => 'table1')->one->{key1}, 1); |
|
1987 |
+is($dbi->select(table => 'table1')->one->{key2}, 2); |
|
1988 |
+is($dbi->select(table => 'table1')->one->{key3}, 4); |
|
1989 |
+ |
|
1990 |
+test 'select_at'; |
|
1991 |
+$dbi = DBIx::Custom->connect; |
|
1992 |
+eval { $dbi->execute('drop table table1') }; |
|
1993 |
+$dbi->execute($create_table1_2); |
|
1994 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
1995 |
+$result = $dbi->select_at( |
|
1996 |
+ table => 'table1', |
|
1997 |
+ primary_key => ['key1', 'key2'], |
|
1998 |
+ where => [1, 2] |
|
1999 |
+); |
|
2000 |
+$row = $result->one; |
|
2001 |
+is($row->{key1}, 1); |
|
2002 |
+is($row->{key2}, 2); |
|
2003 |
+is($row->{key3}, 3); |
|
2004 |
+ |
|
2005 |
+$dbi->delete_all(table => 'table1'); |
|
2006 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2007 |
+$result = $dbi->select_at( |
|
2008 |
+ table => 'table1', |
|
2009 |
+ primary_key => 'key1', |
|
2010 |
+ where => 1, |
|
2011 |
+); |
|
2012 |
+$row = $result->one; |
|
2013 |
+is($row->{key1}, 1); |
|
2014 |
+is($row->{key2}, 2); |
|
2015 |
+is($row->{key3}, 3); |
|
2016 |
+ |
|
2017 |
+$dbi->delete_all(table => 'table1'); |
|
2018 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2019 |
+$result = $dbi->select_at( |
|
2020 |
+ table => 'table1', |
|
2021 |
+ primary_key => ['key1', 'key2'], |
|
2022 |
+ where => [1, 2] |
|
2023 |
+); |
|
2024 |
+$row = $result->one; |
|
2025 |
+is($row->{key1}, 1); |
|
2026 |
+is($row->{key2}, 2); |
|
2027 |
+is($row->{key3}, 3); |
|
2028 |
+ |
|
2029 |
+eval { |
|
2030 |
+ $result = $dbi->select_at( |
|
2031 |
+ table => 'table1', |
|
2032 |
+ primary_key => ['key1', 'key2'], |
|
2033 |
+ where => {}, |
|
2034 |
+ ); |
|
2035 |
+}; |
|
2036 |
+like($@, qr/must be/); |
|
2037 |
+ |
|
2038 |
+eval { |
|
2039 |
+ $result = $dbi->select_at( |
|
2040 |
+ table => 'table1', |
|
2041 |
+ primary_key => ['key1', 'key2'], |
|
2042 |
+ where => [1], |
|
2043 |
+ ); |
|
2044 |
+}; |
|
2045 |
+like($@, qr/same/); |
|
2046 |
+ |
|
2047 |
+eval { |
|
2048 |
+ $result = $dbi->update_at( |
|
2049 |
+ table => 'table1', |
|
2050 |
+ primary_key => ['key1', 'key2'], |
|
2051 |
+ where => {}, |
|
2052 |
+ param => {key1 => 1, key2 => 2}, |
|
2053 |
+ ); |
|
2054 |
+}; |
|
2055 |
+like($@, qr/must be/); |
|
2056 |
+ |
|
2057 |
+eval { |
|
2058 |
+ $result = $dbi->delete_at( |
|
2059 |
+ table => 'table1', |
|
2060 |
+ primary_key => ['key1', 'key2'], |
|
2061 |
+ where => {}, |
|
2062 |
+ ); |
|
2063 |
+}; |
|
2064 |
+like($@, qr/must be/); |
|
2065 |
+ |
|
2066 |
+test 'columns'; |
|
2067 |
+use MyDBI1; |
|
2068 |
+$dbi = MyDBI1->connect; |
|
2069 |
+$model = $dbi->model('book'); |
|
2070 |
+ |
|
2071 |
+ |
|
2072 |
+test 'model delete_at'; |
|
2073 |
+$dbi = MyDBI6->connect; |
|
2074 |
+eval { $dbi->execute('drop table table1') }; |
|
2075 |
+eval { $dbi->execute('drop table table2') }; |
|
2076 |
+eval { $dbi->execute('drop table table3') }; |
|
2077 |
+$dbi->execute($create_table1_2); |
|
2078 |
+$dbi->execute($create_table2_2); |
|
2079 |
+$dbi->execute($create_table3); |
|
2080 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2081 |
+$dbi->model('table1')->delete_at(where => [1, 2]); |
|
2082 |
+is_deeply($dbi->select(table => 'table1')->all, []); |
|
2083 |
+$dbi->insert(table => 'table2', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2084 |
+$dbi->model('table1_1')->delete_at(where => [1, 2]); |
|
2085 |
+is_deeply($dbi->select(table => 'table1')->all, []); |
|
2086 |
+$dbi->insert(table => 'table3', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2087 |
+$dbi->model('table1_3')->delete_at(where => [1, 2]); |
|
2088 |
+is_deeply($dbi->select(table => 'table1')->all, []); |
|
2089 |
+ |
|
2090 |
+test 'model insert_at'; |
|
2091 |
+$dbi = MyDBI6->connect; |
|
2092 |
+eval { $dbi->execute('drop table table1') }; |
|
2093 |
+$dbi->execute($create_table1_2); |
|
2094 |
+$dbi->model('table1')->insert_at( |
|
2095 |
+ where => [1, 2], |
|
2096 |
+ param => {key3 => 3} |
|
2097 |
+); |
|
2098 |
+$result = $dbi->model('table1')->select; |
|
2099 |
+$row = $result->one; |
|
2100 |
+is($row->{key1}, 1); |
|
2101 |
+is($row->{key2}, 2); |
|
2102 |
+is($row->{key3}, 3); |
|
2103 |
+ |
|
2104 |
+test 'model update_at'; |
|
2105 |
+$dbi = MyDBI6->connect; |
|
2106 |
+eval { $dbi->execute('drop table table1') }; |
|
2107 |
+$dbi->execute($create_table1_2); |
|
2108 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2109 |
+$dbi->model('table1')->update_at( |
|
2110 |
+ where => [1, 2], |
|
2111 |
+ param => {key3 => 4} |
|
2112 |
+); |
|
2113 |
+$result = $dbi->model('table1')->select; |
|
2114 |
+$row = $result->one; |
|
2115 |
+is($row->{key1}, 1); |
|
2116 |
+is($row->{key2}, 2); |
|
2117 |
+is($row->{key3}, 4); |
|
2118 |
+ |
|
2119 |
+test 'model select_at'; |
|
2120 |
+$dbi = MyDBI6->connect; |
|
2121 |
+eval { $dbi->execute('drop table table1') }; |
|
2122 |
+$dbi->execute($create_table1_2); |
|
2123 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2, key3 => 3}); |
|
2124 |
+$result = $dbi->model('table1')->select_at(where => [1, 2]); |
|
2125 |
+$row = $result->one; |
|
2126 |
+is($row->{key1}, 1); |
|
2127 |
+is($row->{key2}, 2); |
|
2128 |
+is($row->{key3}, 3); |
|
2129 |
+ |
|
2130 |
+ |
|
2131 |
+test 'mycolumn and column'; |
|
2132 |
+$dbi = MyDBI7->connect; |
|
2133 |
+eval { $dbi->execute('drop table table1') }; |
|
2134 |
+eval { $dbi->execute('drop table table2') }; |
|
2135 |
+$dbi->execute($create_table1); |
|
2136 |
+$dbi->execute($create_table2); |
|
2137 |
+$dbi->separator('__'); |
|
2138 |
+$dbi->setup_model; |
|
2139 |
+$dbi->insert(table => 'table1', param => {key1 => 1, key2 => 2}); |
|
2140 |
+$dbi->insert(table => 'table2', param => {key1 => 1, key3 => 3}); |
|
2141 |
+$model = $dbi->model('table1'); |
|
2142 |
+$result = $model->select( |
|
2143 |
+ column => [$model->mycolumn, $model->column('table2')], |
|
2144 |
+ where => {'table1.key1' => 1} |
|
2145 |
+); |
|
2146 |
+is_deeply($result->one, |
|
2147 |
+ {key1 => 1, key2 => 2, 'table2__key1' => 1, 'table2__key3' => 3}); |
|
1879 | 2148 |
|
1880 | 2149 |
|
1881 | 2150 |
|